Skip to content

Commit 9762c2d

Browse files
longlimsftsmfrench
authored andcommitted
CIFS: SMBD: Upper layer sends data via RDMA send
With SMB Direct connected, use it for sending data via RDMA send. Signed-off-by: Long Li <[email protected]> Signed-off-by: Steve French <[email protected]> Reviewed-by: Pavel Shilovsky <[email protected]> Reviewed-by: Ronnie Sahlberg <[email protected]>
1 parent d649e1b commit 9762c2d

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

fs/cifs/transport.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
#include "cifsglob.h"
3838
#include "cifsproto.h"
3939
#include "cifs_debug.h"
40+
#include "smbdirect.h"
4041

4142
/* Max number of iovectors we can use off the stack when sending requests. */
4243
#define CIFS_MAX_IOV_SIZE 8
@@ -232,7 +233,10 @@ __smb_send_rqst(struct TCP_Server_Info *server, struct smb_rqst *rqst)
232233
struct socket *ssocket = server->ssocket;
233234
struct msghdr smb_msg;
234235
int val = 1;
235-
236+
if (cifs_rdma_enabled(server) && server->smbd_conn) {
237+
rc = smbd_send(server->smbd_conn, rqst);
238+
goto smbd_done;
239+
}
236240
if (ssocket == NULL)
237241
return -ENOTSOCK;
238242

@@ -301,7 +305,7 @@ __smb_send_rqst(struct TCP_Server_Info *server, struct smb_rqst *rqst)
301305
*/
302306
server->tcpStatus = CifsNeedReconnect;
303307
}
304-
308+
smbd_done:
305309
if (rc < 0 && rc != -EINTR)
306310
cifs_dbg(VFS, "Error %d sending data on socket to server\n",
307311
rc);

0 commit comments

Comments
 (0)