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: 73f9bfbe3d81 ("cifs: maintain a state machine for tcp/smb/tcon sessions")
Reported-by: Ronnie Sahlberg <lsahlber@redhat.com>
Acked-by: Ronnie Sahlberg <lsahlber@redhat.com>
Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>

+2 -1
+2 -1
fs/cifs/connect.c
··· 3924 3925 /* only send once per connect */ 3926 spin_lock(&cifs_tcp_ses_lock); 3927 - if (server->tcpStatus != CifsNeedSessSetup) { 3928 spin_unlock(&cifs_tcp_ses_lock); 3929 return 0; 3930 }
··· 3924 3925 /* only send once per connect */ 3926 spin_lock(&cifs_tcp_ses_lock); 3927 + if ((server->tcpStatus != CifsNeedSessSetup) && 3928 + (ses->status == CifsGood)) { 3929 spin_unlock(&cifs_tcp_ses_lock); 3930 return 0; 3931 }