mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
[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>
This commit is contained in:
parent
97837582bc
commit
88e7d705c4
1 changed files with 3 additions and 3 deletions
|
@ -1966,13 +1966,13 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
|
||||||
pSesInfo = existingCifsSes;
|
pSesInfo = existingCifsSes;
|
||||||
cFYI(1, ("Existing smb sess found (status=%d)",
|
cFYI(1, ("Existing smb sess found (status=%d)",
|
||||||
pSesInfo->status));
|
pSesInfo->status));
|
||||||
|
down(&pSesInfo->sesSem);
|
||||||
if (pSesInfo->status == CifsNeedReconnect) {
|
if (pSesInfo->status == CifsNeedReconnect) {
|
||||||
cFYI(1, ("Session needs reconnect"));
|
cFYI(1, ("Session needs reconnect"));
|
||||||
down(&pSesInfo->sesSem);
|
|
||||||
rc = cifs_setup_session(xid, pSesInfo,
|
rc = cifs_setup_session(xid, pSesInfo,
|
||||||
cifs_sb->local_nls);
|
cifs_sb->local_nls);
|
||||||
up(&pSesInfo->sesSem);
|
|
||||||
}
|
}
|
||||||
|
up(&pSesInfo->sesSem);
|
||||||
} else if (!rc) {
|
} else if (!rc) {
|
||||||
cFYI(1, ("Existing smb sess not found"));
|
cFYI(1, ("Existing smb sess not found"));
|
||||||
pSesInfo = sesInfoAlloc();
|
pSesInfo = sesInfoAlloc();
|
||||||
|
@ -3522,7 +3522,7 @@ cifs_umount(struct super_block *sb, struct cifs_sb_info *cifs_sb)
|
||||||
sesInfoFree(ses);
|
sesInfoFree(ses);
|
||||||
|
|
||||||
FreeXid(xid);
|
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,
|
int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
|
||||||
|
|
Loading…
Reference in a new issue