diff options
author | Steve French <sfrench@us.ibm.com> | 2006-06-07 00:18:43 +0000 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2006-06-07 00:18:43 +0000 |
commit | 5bafd76593f060540acbea3b61e3087e009aa269 (patch) | |
tree | b5baf62243810b7aa36619a8cf64ab24d82952fb /fs/cifs/file.c | |
parent | a8ee03441f66e0674e641c0cbe1a9534cdee968f (diff) | |
download | kernel_samsung_crespo-5bafd76593f060540acbea3b61e3087e009aa269.zip kernel_samsung_crespo-5bafd76593f060540acbea3b61e3087e009aa269.tar.gz kernel_samsung_crespo-5bafd76593f060540acbea3b61e3087e009aa269.tar.bz2 |
[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 d62e29f..fafdcdf 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -260,10 +260,15 @@ int cifs_open(struct inode *inode, struct file *file) rc = -ENOMEM; goto out; } - rc = CIFSSMBOpen(xid, pTcon, full_path, disposition, desiredAccess, - CREATE_NOT_DIR, &netfid, &oplock, buf, + + if (cifs_sb->tcon->ses->capabilities & CAP_NT_SMBS) + rc = CIFSSMBOpen(xid, pTcon, full_path, disposition, + desiredAccess, CREATE_NOT_DIR, &netfid, &oplock, buf, cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR); + else + rc = -EIO; /* no NT SMB support fall into legacy open below */ + if (rc == -EIO) { /* Old server, try legacy style OpenX */ rc = SMBLegacyOpen(xid, pTcon, full_path, disposition, |