Commit e3ee9fb2 authored by Steve French's avatar Steve French
Browse files

smb3: fix incorrect session setup check for multiuser mounts



A recent change to how the SMB3 server (socket) and session status
is managed regressed multiuser mounts by changing the check
for whether session setup is needed to the socket (TCP_Server_info)
structure instead of the session struct (cifs_ses). Add additional
check in cifs_setup_sesion to fix this.

Fixes: 73f9bfbe ("cifs: maintain a state machine for tcp/smb/tcon sessions")
Reported-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
Acked-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: default avatarShyam Prasad N <sprasad@microsoft.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent 09688c01
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -3924,7 +3924,8 @@ cifs_setup_session(const unsigned int xid, struct cifs_ses *ses,

	/* only send once per connect */
	spin_lock(&cifs_tcp_ses_lock);
	if (server->tcpStatus != CifsNeedSessSetup) {
	if ((server->tcpStatus != CifsNeedSessSetup) &&
	    (ses->status == CifsGood)) {
		spin_unlock(&cifs_tcp_ses_lock);
		return 0;
	}