cifs: Fix oops due to uncleared server->smbd_conn in reconnect
authorDavid Howells <dhowells@redhat.com>
Wed, 25 Jan 2023 14:02:13 +0000 (14:02 +0000)
committerSteve French <stfrench@microsoft.com>
Wed, 25 Jan 2023 15:57:48 +0000 (09:57 -0600)
In smbd_destroy(), clear the server->smbd_conn pointer after freeing the
smbd_connection struct that it points to so that reconnection doesn't get
confused.

Fixes: 8ef130f9ec27 ("CIFS: SMBD: Implement function to destroy a SMB Direct connection")
Cc: stable@vger.kernel.org
Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz>
Acked-by: Tom Talpey <tom@talpey.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Cc: Long Li <longli@microsoft.com>
Cc: Pavel Shilovsky <piastryyy@gmail.com>
Cc: Ronnie Sahlberg <lsahlber@redhat.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/smbdirect.c

index 90789aa..8c816b2 100644 (file)
@@ -1405,6 +1405,7 @@ void smbd_destroy(struct TCP_Server_Info *server)
        destroy_workqueue(info->workqueue);
        log_rdma_event(INFO,  "rdma session destroyed\n");
        kfree(info);
+       server->smbd_conn = NULL;
 }
 
 /*