diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index c74d6b577d952517c38ce96af6ce78534e1c2332..7694056e5990a480bf18286f7fd93b6441ca084c 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c @@ -376,7 +376,10 @@ __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst, * be taken as the remainder of this one. We need to kill the * socket so the server throws away the partial SMB */ - server->tcpStatus = CifsNeedReconnect; + spin_lock(&GlobalMid_Lock); + if (server->tcpStatus != CifsExiting) + server->tcpStatus = CifsNeedReconnect; + spin_unlock(&GlobalMid_Lock); trace_smb3_partial_send_reconnect(server->CurrentMid, server->hostname); }