cifs:smbd When reconnecting to server, call smbd_destroy() after all MIDs have been...
authorLong Li <longli@microsoft.com>
Tue, 14 May 2019 04:01:28 +0000 (21:01 -0700)
committerSteve French <stfrench@microsoft.com>
Tue, 14 May 2019 21:48:55 +0000 (16:48 -0500)
commit1d2a4f57cebdab1d496b976a1e6ea998dc9b03c8
treed70c32ee5ccab2c2e3ceebca8232771d441fed42
parent14e25977f98887f1f99c3ce7537a7674aab3cbdd
cifs:smbd When reconnecting to server, call smbd_destroy() after all MIDs have been called

commit 214bab448476 ("cifs: Call MID callback before destroying transport")
assumes that the MID callback should not take srv_mutex, this may not always
be true. SMB Direct requires the MID callback completed before calling
transport so all pending memory registration can be freed. So restore the
original calling sequence so TCP transport will use the same code, but moving
smbd_destroy() after all MID has been called.

fixes: 214bab448476 ("cifs: Call MID callback before destroying transport")
Signed-off-by: Long Li <longli@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
fs/cifs/connect.c