CIFS: SMBD: Upper layer reconnects to SMB Direct session
authorLong Li <longli@microsoft.com>
Thu, 23 Nov 2017 00:38:36 +0000 (17:38 -0700)
committerSteve French <smfrench@gmail.com>
Thu, 25 Jan 2018 01:49:06 +0000 (19:49 -0600)
Do a reconnect on SMB Direct when it is used as the connection. Reconnect can
happen for many reasons and it's mostly the decision of SMB2 upper layer.

Signed-off-by: Long Li <longli@microsoft.com>
Signed-off-by: Steve French <smfrench@gmail.com>
Reviewed-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
fs/cifs/connect.c

index fafaecb5fb181e7e97b503af9e40023d3a871b2d..fc460663b308a76193aa385d80c3a963e85c7523 100644 (file)
@@ -406,7 +406,10 @@ cifs_reconnect(struct TCP_Server_Info *server)
 
                /* we should try only the port we connected to before */
                mutex_lock(&server->srv_mutex);
-               rc = generic_ip_connect(server);
+               if (cifs_rdma_enabled(server))
+                       rc = smbd_reconnect(server);
+               else
+                       rc = generic_ip_connect(server);
                if (rc) {
                        cifs_dbg(FYI, "reconnect error %d\n", rc);
                        mutex_unlock(&server->srv_mutex);