diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c index 53588d7517b4d0842e2d65575f25c94625524693..5ec4788341c2962135ef6f928ecce1212c5ea487 100644 --- a/fs/cifs/cifs_debug.c +++ b/fs/cifs/cifs_debug.c @@ -356,6 +356,8 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v) list_for_each(tmp2, &server->smb_ses_list) { ses = list_entry(tmp2, struct cifs_ses, smb_ses_list); + if (ses->status == CifsExiting) + continue; if ((ses->serverDomain == NULL) || (ses->serverOS == NULL) || (ses->serverNOS == NULL)) { diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 090e595c921b3a5a36e1aec54c21dbefb7e1a7de..f6a7e25ce234b689413f409ec558efb8d7c2e7b2 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -2877,12 +2877,12 @@ void cifs_put_smb_ses(struct cifs_ses *ses) spin_unlock(&cifs_tcp_ses_lock); return; } - spin_unlock(&cifs_tcp_ses_lock); spin_lock(&GlobalMid_Lock); if (ses->status == CifsGood) ses->status = CifsExiting; spin_unlock(&GlobalMid_Lock); + spin_unlock(&cifs_tcp_ses_lock); cifs_free_ipc(ses);