diff options
author | Shyam Prasad N <sprasad@microsoft.com> | 2022-03-30 12:22:20 +0300 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2022-05-24 22:08:25 +0300 |
commit | 1a6a41d4cedd9b302e2200e6f0e3c44dbbe13689 (patch) | |
tree | 2a5b6208b361b2b246b2f309ffec61136ef5f145 /fs/cifs/smb2transport.c | |
parent | 52832252dded19e291a7b8842542ea61d1765f2f (diff) | |
download | linux-1a6a41d4cedd9b302e2200e6f0e3c44dbbe13689.tar.xz |
cifs: do not use tcpStatus after negotiate completes
Recent changes to multichannel to allow channel reconnects to
work in parallel and independent of each other did so by
making use of tcpStatus for the connection, and status for the
session. However, this did not take into account the multiuser
scenario, where same connection is used by multiple connections.
However, tcpStatus should be tracked only till the end of
negotiate exchange, and not used for session setup. This change
fixes this.
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/cifs/smb2transport.c')
-rw-r--r-- | fs/cifs/smb2transport.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/cifs/smb2transport.c b/fs/cifs/smb2transport.c index 2af79093b78b..01b732641edb 100644 --- a/fs/cifs/smb2transport.c +++ b/fs/cifs/smb2transport.c @@ -641,7 +641,8 @@ smb2_sign_rqst(struct smb_rqst *rqst, struct TCP_Server_Info *server) if (!is_signed) return 0; spin_lock(&cifs_tcp_ses_lock); - if (server->tcpStatus == CifsNeedNegotiate) { + if (server->ops->need_neg && + server->ops->need_neg(server)) { spin_unlock(&cifs_tcp_ses_lock); return 0; } |