summaryrefslogtreecommitdiffstats
path: root/fs/cifs/dir.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-08-25 08:06:05 +0200
committerSteve French <sfrench@us.ibm.com>2005-08-25 08:06:05 +0200
commita9d02ad49013c8fc527f06ca66417103cdbb08b6 (patch)
tree9ee3f14e81777296e7057adcfe5c986aea696d47 /fs/cifs/dir.c
parent[CIFS] Use file instead of dentry in cifs dir_notify struct (diff)
downloadlinux-a9d02ad49013c8fc527f06ca66417103cdbb08b6.tar.xz
linux-a9d02ad49013c8fc527f06ca66417103cdbb08b6.zip
[CIFS] Support for legacy servers part 3 - Add support for Open and most
of Read support. Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/dir.c')
-rw-r--r--fs/cifs/dir.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 5311c50734b0..248ddebd67f4 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -184,6 +184,13 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
desiredAccess, CREATE_NOT_DIR,
&fileHandle, &oplock, buf, cifs_sb->local_nls,
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
+ if(rc == -EIO) {
+ /* old server, retry the open legacy style */
+ rc = SMBLegacyOpen(xid, pTcon, full_path, disposition,
+ desiredAccess, CREATE_NOT_DIR,
+ &fileHandle, &oplock, buf, cifs_sb->local_nls,
+ cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
+ }
if (rc) {
cFYI(1, ("cifs_create returned 0x%x ", rc));
} else {