diff options
author | Jeff Layton <jlayton@redhat.com> | 2007-12-31 01:37:11 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2007-12-31 01:37:11 +0000 |
commit | 1d9a8852c365fb7f8db0f8364210138985f457b8 (patch) | |
tree | 277aa7baf9e458edc757fdbc267e0b331340be22 /fs/cifs/sess.c | |
parent | 05b3de63da2abe804f5dbe0174298bf48949079f (diff) | |
download | linux-1d9a8852c365fb7f8db0f8364210138985f457b8.tar.bz2 |
[CIFS] redo existing session setup if needed in cifs_mount
When cifs_mount finds an existing SMB session that it can use for a new
mount, it does not check to see whether that session is in need of being
reconnected. An easy way to reproduce:
1) mount //server/share1
2) watch /proc/fs/cifs/DebugData for the share to go DISCONNECTED
3) mount //server/share2 with same creds as in step 1.
The second mount will fail because CIFSTCon returned -EAGAIN. If you do
an operation in share1 and then reattempt the mount it will work (since
the session is reestablished).
The following patch fixes this by having cifs_mount check the status
of the session when it picks an existing session and calling
cifs_setup_session on it again if it's in need of reconnection.
Thanks to Wojciech Pilorz for the initial bug report.
Signed-off-by: Jeff Layton <jlayton@tupile.poochiereds.net>
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/sess.c')
0 files changed, 0 insertions, 0 deletions