diff options
author | Steve French <sfrench@us.ibm.com> | 2006-06-06 20:18:43 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-06-06 20:18:43 -0400 |
commit | 5bafd76593f060540acbea3b61e3087e009aa269 (patch) | |
tree | b5baf62243810b7aa36619a8cf64ab24d82952fb /fs/cifs/file.c | |
parent | a8ee03441f66e0674e641c0cbe1a9534cdee968f (diff) |
[CIFS] Add support for readdir to legacy servers
Fixes oops to OS/2 on ls and removes redundant NTCreateX calls to servers
which do not support NT SMBs. Key operations to OS/2 work.
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/file.c')
-rw-r--r-- | fs/cifs/file.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index d62e29fe91f2..fafdcdffba62 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -260,10 +260,15 @@ int cifs_open(struct inode *inode, struct file *file) | |||
260 | rc = -ENOMEM; | 260 | rc = -ENOMEM; |
261 | goto out; | 261 | goto out; |
262 | } | 262 | } |
263 | rc = CIFSSMBOpen(xid, pTcon, full_path, disposition, desiredAccess, | 263 | |
264 | CREATE_NOT_DIR, &netfid, &oplock, buf, | 264 | if (cifs_sb->tcon->ses->capabilities & CAP_NT_SMBS) |
265 | rc = CIFSSMBOpen(xid, pTcon, full_path, disposition, | ||
266 | desiredAccess, CREATE_NOT_DIR, &netfid, &oplock, buf, | ||
265 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags | 267 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags |
266 | & CIFS_MOUNT_MAP_SPECIAL_CHR); | 268 | & CIFS_MOUNT_MAP_SPECIAL_CHR); |
269 | else | ||
270 | rc = -EIO; /* no NT SMB support fall into legacy open below */ | ||
271 | |||
267 | if (rc == -EIO) { | 272 | if (rc == -EIO) { |
268 | /* Old server, try legacy style OpenX */ | 273 | /* Old server, try legacy style OpenX */ |
269 | rc = SMBLegacyOpen(xid, pTcon, full_path, disposition, | 274 | rc = SMBLegacyOpen(xid, pTcon, full_path, disposition, |