From ba99258ea9c0042652e9caec9d2a6886f3df9dc4 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Thu, 7 Oct 2010 14:46:28 -0400 Subject: [PATCH] --- yaml --- r: 213418 b: refs/heads/master c: 3aa1c8c2900065a51268430ab48a1b42fdfe5b45 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/cifs/inode.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 68b58bb6c9b3..89055f7f3ed7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 13cd4b7f7472eea7cbc1ab34e042842fbb902160 +refs/heads/master: 3aa1c8c2900065a51268430ab48a1b42fdfe5b45 diff --git a/trunk/fs/cifs/inode.c b/trunk/fs/cifs/inode.c index df29a3a3d80c..7e5b8c39a07a 100644 --- a/trunk/fs/cifs/inode.c +++ b/trunk/fs/cifs/inode.c @@ -1755,11 +1755,21 @@ int cifs_revalidate_dentry(struct dentry *dentry) int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) { + struct cifs_sb_info *cifs_sb = CIFS_SB(dentry->d_sb); + struct cifsTconInfo *tcon = cifs_sb_master_tcon(cifs_sb); int err = cifs_revalidate_dentry(dentry); + if (!err) { generic_fillattr(dentry->d_inode, stat); stat->blksize = CIFS_MAX_MSGSIZE; stat->ino = CIFS_I(dentry->d_inode)->uniqueid; + if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER) && + !tcon->unix_ext) { + if (!cifs_sb->mnt_uid) + stat->uid = current_fsuid(); + if (!cifs_sb->mnt_uid) + stat->gid = current_fsgid(); + } } return err; }