diff options
author | Steve French <sfrench@us.ibm.com> | 2008-01-03 17:37:09 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2008-01-03 17:37:09 +0000 |
commit | 88e7d705c4bdb729f02173583628ccbf49dba945 (patch) | |
tree | 36cfa6c7f9b651e7ef88815e6bf7fb51e5f6cccb /fs/cifs/connect.c | |
parent | 97837582bc1e191d2792af74c1f3762ed01243b9 (diff) | |
download | lwn-88e7d705c4bdb729f02173583628ccbf49dba945.tar.gz lwn-88e7d705c4bdb729f02173583628ccbf49dba945.zip |
[CIFS] hold ses sem on tcp session reconnect during mount
Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 658f58b99e6f..db3746c891b5 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1966,13 +1966,13 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, pSesInfo = existingCifsSes; cFYI(1, ("Existing smb sess found (status=%d)", pSesInfo->status)); + down(&pSesInfo->sesSem); if (pSesInfo->status == CifsNeedReconnect) { cFYI(1, ("Session needs reconnect")); - down(&pSesInfo->sesSem); rc = cifs_setup_session(xid, pSesInfo, cifs_sb->local_nls); - up(&pSesInfo->sesSem); } + up(&pSesInfo->sesSem); } else if (!rc) { cFYI(1, ("Existing smb sess not found")); pSesInfo = sesInfoAlloc(); @@ -3522,7 +3522,7 @@ cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb) sesInfoFree(ses); FreeXid(xid); - return rc; /* BB check if we should always return zero here */ + return rc; } int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo, |