aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-09-16 15:59:11 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-09-16 15:59:11 -0400
commit03a7ab083e4d619136d6f07ce70fa9de0bc436fc (patch)
treea6b54d32e2c43991cd60193843ebef076e38d6d0 /fs
parent7bb419041bab2c0efa6e78e9e9e3d9c6ebc75fae (diff)
parent460cf3411b858ad509d5255e0dfaf862a83c0299 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6: cifs: fix potential double put of TCP session reference
Diffstat (limited to 'fs')
-rw-r--r--fs/cifs/connect.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 67dad54fbfa1..88c84a38bccb 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -1706,9 +1706,6 @@ cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb_vol *volume_info)
1706 if (ses) { 1706 if (ses) {
1707 cFYI(1, "Existing smb sess found (status=%d)", ses->status); 1707 cFYI(1, "Existing smb sess found (status=%d)", ses->status);
1708 1708
1709 /* existing SMB ses has a server reference already */
1710 cifs_put_tcp_session(server);
1711
1712 mutex_lock(&ses->session_mutex); 1709 mutex_lock(&ses->session_mutex);
1713 rc = cifs_negotiate_protocol(xid, ses); 1710 rc = cifs_negotiate_protocol(xid, ses);
1714 if (rc) { 1711 if (rc) {
@@ -1731,6 +1728,9 @@ cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb_vol *volume_info)
1731 } 1728 }
1732 } 1729 }
1733 mutex_unlock(&ses->session_mutex); 1730 mutex_unlock(&ses->session_mutex);
1731
1732 /* existing SMB ses has a server reference already */
1733 cifs_put_tcp_session(server);
1734 FreeXid(xid); 1734 FreeXid(xid);
1735 return ses; 1735 return ses;
1736 } 1736 }