diff options
author | Steve French <sfrench@us.ibm.com> | 2005-08-23 23:26:03 -0400 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2005-08-23 23:26:03 -0400 |
commit | 6b8edfe0f918e7585acb3bd63f62ff56e32dd3d2 (patch) | |
tree | ea9c6c9c85b0653aeac1abad87ad160114de28af /fs/cifs/inode.c | |
parent | a10faeb2a3e266385cc334fe9af76e08e5e4330f (diff) |
[CIFS] Support for mounting to older servers part 2. Add support for
legacy getattr (lookup).
Signed-off-by: Steve French (sfrench@us.ibm.com)
Diffstat (limited to 'fs/cifs/inode.c')
-rw-r--r-- | fs/cifs/inode.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index 2d50b3507d13..34f0168c4041 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -215,8 +215,18 @@ int cifs_get_inode_info(struct inode **pinode, | |||
215 | pfindData = (FILE_ALL_INFO *)buf; | 215 | pfindData = (FILE_ALL_INFO *)buf; |
216 | /* could do find first instead but this returns more info */ | 216 | /* could do find first instead but this returns more info */ |
217 | rc = CIFSSMBQPathInfo(xid, pTcon, search_path, pfindData, | 217 | rc = CIFSSMBQPathInfo(xid, pTcon, search_path, pfindData, |
218 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & | 218 | cifs_sb->local_nls, cifs_sb->mnt_cifs_flags & |
219 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 219 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
220 | /* BB optimize code so we do not make the above call | ||
221 | when server claims no NT SMB support and the above call | ||
222 | failed at least once - set flag in tcon or mount */ | ||
223 | if((rc == -EOPNOTSUPP) || (rc == -EINVAL)) { | ||
224 | rc = SMBQueryInformation(xid, pTcon, search_path, | ||
225 | pfindData, cifs_sb->local_nls, | ||
226 | cifs_sb->mnt_cifs_flags & | ||
227 | CIFS_MOUNT_MAP_SPECIAL_CHR); | ||
228 | } | ||
229 | |||
220 | } | 230 | } |
221 | /* dump_mem("\nQPathInfo return data",&findData, sizeof(findData)); */ | 231 | /* dump_mem("\nQPathInfo return data",&findData, sizeof(findData)); */ |
222 | if (rc) { | 232 | if (rc) { |