mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 21:54:11 +08:00
cifs: do not negotiate session if session already exists
In cifs_get_smb_ses, if we find an existing matching session, we should not send a negotiate request for the session if a session reconnect is not necessary. Signed-off-by: Shyam Prasad N <sprasad@microsoft.com> Reviewed-by: Paulo Alcantara (SUSE) <pc@cjr.nz> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
02102744d3
commit
8e07757bec
@ -1943,16 +1943,18 @@ cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb3_fs_context *ctx)
|
||||
ses->status);
|
||||
|
||||
mutex_lock(&ses->session_mutex);
|
||||
rc = cifs_negotiate_protocol(xid, ses);
|
||||
if (rc) {
|
||||
mutex_unlock(&ses->session_mutex);
|
||||
/* problem -- put our ses reference */
|
||||
cifs_put_smb_ses(ses);
|
||||
free_xid(xid);
|
||||
return ERR_PTR(rc);
|
||||
}
|
||||
if (ses->need_reconnect) {
|
||||
cifs_dbg(FYI, "Session needs reconnect\n");
|
||||
|
||||
rc = cifs_negotiate_protocol(xid, ses);
|
||||
if (rc) {
|
||||
mutex_unlock(&ses->session_mutex);
|
||||
/* problem -- put our ses reference */
|
||||
cifs_put_smb_ses(ses);
|
||||
free_xid(xid);
|
||||
return ERR_PTR(rc);
|
||||
}
|
||||
|
||||
rc = cifs_setup_session(xid, ses,
|
||||
ctx->local_nls);
|
||||
if (rc) {
|
||||
|
Loading…
Reference in New Issue
Block a user