diff options
author | Steve French <sfrench@us.ibm.com> | 2006-03-03 09:53:36 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-03-03 09:53:36 +0000 |
commit | 083d3a2cff514c5301f3a043642940d4d5371b22 (patch) | |
tree | 9dd82892244234401b54fe4133d3c2947b8a3b90 /fs/cifs/connect.c | |
parent | a4e85b5f620f59bd9308e29f833648f792d422f7 (diff) | |
download | talos-obmc-linux-083d3a2cff514c5301f3a043642940d4d5371b22.tar.gz talos-obmc-linux-083d3a2cff514c5301f3a043642940d4d5371b22.zip |
[CIFS] Workaround various server bugs found in testing at connectathon
- slow down negprot 1ms during mount when RFC1001 over port 139
to give buggy servers time to clear sess_init
- remap some plausible but incorrect SMB return codes to the
right ones in truncate and hardlink paths
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index b8f1baabd343..3651deca4f24 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1476,6 +1476,14 @@ ipv4_connect(struct sockaddr_in *psin_server, struct socket **csocket, rc = smb_send(*csocket, smb_buf, 0x44, (struct sockaddr *)psin_server); kfree(ses_init_buf); + msleep(1); /* RFC1001 layer in at least one server + requires very short break before negprot + presumably because not expecting negprot + to follow so fast. This is a simple + solution that works without + complicating the code and causes no + significant slowing down on mount + for everyone else */ } /* else the negprot may still work without this even though malloc failed */ |