From b644ffcbdcb160f3edd5d61023c592a3f966ca99 Mon Sep 17 00:00:00 2001 From: "Eric W. Biederman" Date: Tue, 5 Feb 2013 23:55:44 -0800 Subject: [PATCH] --- yaml --- r: 357833 b: refs/heads/master c: 46bbc25f9ff1242cd1c042580aec11ddb5e41369 h: refs/heads/master i: 357831: a34b83cc0f4b2bd99d4f4c3f088bb86aa746433f v: v3 --- [refs] | 2 +- trunk/fs/cifs/inode.c | 22 +++++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/[refs] b/[refs] index 5ab926b8ba8d..b4943274913f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c9617a44b39d75b2098283d56355d02d4d5bee8b +refs/heads/master: 46bbc25f9ff1242cd1c042580aec11ddb5e41369 diff --git a/trunk/fs/cifs/inode.c b/trunk/fs/cifs/inode.c index ed6208ff85a7..d7ea2a6eaead 100644 --- a/trunk/fs/cifs/inode.c +++ b/trunk/fs/cifs/inode.c @@ -244,15 +244,19 @@ cifs_unix_basic_to_fattr(struct cifs_fattr *fattr, FILE_UNIX_BASIC_INFO *info, break; } - if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID) - fattr->cf_uid = cifs_sb->mnt_uid; - else - fattr->cf_uid = le64_to_cpu(info->Uid); - - if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID) - fattr->cf_gid = cifs_sb->mnt_gid; - else - fattr->cf_gid = le64_to_cpu(info->Gid); + fattr->cf_uid = cifs_sb->mnt_uid; + if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_UID)) { + u64 id = le64_to_cpu(info->Uid); + if (id < ((uid_t)-1)) + fattr->cf_uid = id; + } + + fattr->cf_gid = cifs_sb->mnt_gid; + if (!(cifs_sb->mnt_cifs_flags & CIFS_MOUNT_OVERR_GID)) { + u64 id = le64_to_cpu(info->Gid); + if (id < ((gid_t)-1)) + fattr->cf_gid = id; + } fattr->cf_nlink = le64_to_cpu(info->Nlinks); }