From: Shyam Prasad N <sprasad@microsoft.com>
Date: Tue, 18 Jan 2022 09:24:08 +0000
Subject: [PATCH] cifs: update tcpStatus during negotiate and sess setup
Git-commit: 47de760655f329ce4b3d3e6276557220956d8c38
References: bsc#1193629
Patch-mainline: v5.17-rc1
Till the end of SMB session setup, update tcpStatus and
avoid updating session status field. There was a typo in
cifs_setup_session, which caused ses->status to be updated
instead. This was causing issues during reconnect.
Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
Acked-by: Enzo Matsumiya <ematsumiya@suse.de>
---
fs/cifs/connect.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 0a35503b7b46..bcba3324cb4b 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3908,7 +3908,7 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses,
spin_unlock(&cifs_tcp_ses_lock);
return 0;
}
- ses->status = CifsInSessSetup;
+ server->tcpStatus = CifsInSessSetup;
spin_unlock(&cifs_tcp_ses_lock);
spin_lock(&ses->chan_lock);
@@ -3946,8 +3946,7 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses,
if (server->tcpStatus == CifsInSessSetup)
server->tcpStatus = CifsGood;
/* Even if one channel is active, session is in good state */
- if (ses->status == CifsInSessSetup)
- ses->status = CifsGood;
+ ses->status = CifsGood;
spin_unlock(&cifs_tcp_ses_lock);
spin_lock(&ses->chan_lock);
--
2.36.1