hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/fs/cifs/transport.c
....@@ -312,7 +312,7 @@
312312 __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst,
313313 struct smb_rqst *rqst)
314314 {
315
- int rc = 0;
315
+ int rc;
316316 struct kvec *iov;
317317 int n_vec;
318318 unsigned int send_length = 0;
....@@ -323,6 +323,7 @@
323323 struct msghdr smb_msg = {};
324324 __be32 rfc1002_marker;
325325
326
+ cifs_in_send_inc(server);
326327 if (cifs_rdma_enabled(server)) {
327328 /* return -EAGAIN when connecting or reconnecting */
328329 rc = -EAGAIN;
....@@ -331,14 +332,17 @@
331332 goto smbd_done;
332333 }
333334
335
+ rc = -EAGAIN;
334336 if (ssocket == NULL)
335
- return -EAGAIN;
337
+ goto out;
336338
339
+ rc = -ERESTARTSYS;
337340 if (fatal_signal_pending(current)) {
338341 cifs_dbg(FYI, "signal pending before send request\n");
339
- return -ERESTARTSYS;
342
+ goto out;
340343 }
341344
345
+ rc = 0;
342346 /* cork the socket */
343347 tcp_sock_set_cork(ssocket->sk, true);
344348
....@@ -449,7 +453,8 @@
449453 rc);
450454 else if (rc > 0)
451455 rc = 0;
452
-
456
+out:
457
+ cifs_in_send_dec(server);
453458 return rc;
454459 }
455460
....@@ -826,9 +831,7 @@
826831 * I/O response may come back and free the mid entry on another thread.
827832 */
828833 cifs_save_when_sent(mid);
829
- cifs_in_send_inc(server);
830834 rc = smb_send_rqst(server, 1, rqst, flags);
831
- cifs_in_send_dec(server);
832835
833836 if (rc < 0) {
834837 revert_current_mid(server, mid->credits);
....@@ -1117,9 +1120,7 @@
11171120 else
11181121 midQ[i]->callback = cifs_compound_last_callback;
11191122 }
1120
- cifs_in_send_inc(server);
11211123 rc = smb_send_rqst(server, num_rqst, rqst, flags);
1122
- cifs_in_send_dec(server);
11231124
11241125 for (i = 0; i < num_rqst; i++)
11251126 cifs_save_when_sent(midQ[i]);
....@@ -1356,9 +1357,7 @@
13561357
13571358 midQ->mid_state = MID_REQUEST_SUBMITTED;
13581359
1359
- cifs_in_send_inc(server);
13601360 rc = smb_send(server, in_buf, len);
1361
- cifs_in_send_dec(server);
13621361 cifs_save_when_sent(midQ);
13631362
13641363 if (rc < 0)
....@@ -1495,9 +1494,7 @@
14951494 }
14961495
14971496 midQ->mid_state = MID_REQUEST_SUBMITTED;
1498
- cifs_in_send_inc(server);
14991497 rc = smb_send(server, in_buf, len);
1500
- cifs_in_send_dec(server);
15011498 cifs_save_when_sent(midQ);
15021499
15031500 if (rc < 0)