aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/cifs/inode.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index ed6208ff85a7..d7ea2a6eaead 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -244,15 +244,19 @@ cifs_unix_basic_to_fattr(struct cifs_fattr *fattr, FILE_UNIX_BASIC_INFO *info,
244 break; 244 break;
245 } 245 }
246 246
247 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID) 247 fattr->cf_uid = cifs_sb->mnt_uid;
248 fattr->cf_uid = cifs_sb->mnt_uid; 248 if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID)) {
249 else 249 u64 id = le64_to_cpu(info->Uid);
250 fattr->cf_uid = le64_to_cpu(info->Uid); 250 if (id < ((uid_t)-1))
251 251 fattr->cf_uid = id;
252 if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID) 252 }
253 fattr->cf_gid = cifs_sb->mnt_gid; 253
254 else 254 fattr->cf_gid = cifs_sb->mnt_gid;
255 fattr->cf_gid = le64_to_cpu(info->Gid); 255 if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID)) {
256 u64 id = le64_to_cpu(info->Gid);
257 if (id < ((gid_t)-1))
258 fattr->cf_gid = id;
259 }
256 260
257 fattr->cf_nlink = le64_to_cpu(info->Nlinks); 261 fattr->cf_nlink = le64_to_cpu(info->Nlinks);
258} 262}