diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/cifs/inode.c | 22 |
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 | } |