diff options
-rw-r--r-- | fs/cifs/inode.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index df29a3a3d80c..7e5b8c39a07a 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -1755,11 +1755,21 @@ check_inval: | |||
1755 | int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry, | 1755 | int cifs_getattr(struct vfsmount *mnt, struct dentry *dentry, |
1756 | struct kstat *stat) | 1756 | struct kstat *stat) |
1757 | { | 1757 | { |
1758 | struct cifs_sb_info *cifs_sb = CIFS_SB(dentry->d_sb); | ||
1759 | struct cifsTconInfo *tcon = cifs_sb_master_tcon(cifs_sb); | ||
1758 | int err = cifs_revalidate_dentry(dentry); | 1760 | int err = cifs_revalidate_dentry(dentry); |
1761 | |||
1759 | if (!err) { | 1762 | if (!err) { |
1760 | generic_fillattr(dentry->d_inode, stat); | 1763 | generic_fillattr(dentry->d_inode, stat); |
1761 | stat->blksize = CIFS_MAX_MSGSIZE; | 1764 | stat->blksize = CIFS_MAX_MSGSIZE; |
1762 | stat->ino = CIFS_I(dentry->d_inode)->uniqueid; | 1765 | stat->ino = CIFS_I(dentry->d_inode)->uniqueid; |
1766 | if ((cifs_sb->mnt_cifs_flags & CIFS_MOUNT_MULTIUSER) && | ||
1767 | !tcon->unix_ext) { | ||
1768 | if (!cifs_sb->mnt_uid) | ||
1769 | stat->uid = current_fsuid(); | ||
1770 | if (!cifs_sb->mnt_uid) | ||
1771 | stat->gid = current_fsgid(); | ||
1772 | } | ||
1763 | } | 1773 | } |
1764 | return err; | 1774 | return err; |
1765 | } | 1775 | } |