[CIFS] Fallback to standard mkdir if server incorrectly claims support for
posix ops Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Родитель
5a07cdf86c
Коммит
c45d707f67
|
@ -101,5 +101,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t);
|
|||
extern ssize_t cifs_listxattr(struct dentry *, char *, size_t);
|
||||
extern int cifs_ioctl(struct inode *inode, struct file *filep,
|
||||
unsigned int command, unsigned long arg);
|
||||
#define CIFS_VERSION "1.50"
|
||||
#define CIFS_VERSION "1.51"
|
||||
#endif /* _CIFSFS_H */
|
||||
|
|
|
@ -925,7 +925,10 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
|
|||
full_path, cifs_sb->local_nls,
|
||||
cifs_sb->mnt_cifs_flags &
|
||||
CIFS_MOUNT_MAP_SPECIAL_CHR);
|
||||
if (rc) {
|
||||
if (rc == -EOPNOTSUPP) {
|
||||
kfree(pInfo);
|
||||
goto mkdir_retry_old;
|
||||
} else if (rc) {
|
||||
cFYI(1, ("posix mkdir returned 0x%x", rc));
|
||||
d_drop(direntry);
|
||||
} else {
|
||||
|
@ -977,7 +980,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
|
|||
kfree(pInfo);
|
||||
goto mkdir_out;
|
||||
}
|
||||
|
||||
mkdir_retry_old:
|
||||
/* BB add setting the equivalent of mode via CreateX w/ACLs */
|
||||
rc = CIFSSMBMkDir(xid, pTcon, full_path, cifs_sb->local_nls,
|
||||
cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MAP_SPECIAL_CHR);
|
||||
|
|
Загрузка…
Ссылка в новой задаче