[linux-cifs-client] [PATCH 13/15] cifs: on multises mount, set ownership to current_fsuid/current_fsgid
Jeff Layton
jlayton at samba.org
Tue Mar 30 13:51:15 MDT 2010
From: Jeff Layton <jlayton at redhat.com>
...when unix extensions aren't enabled. This makes everything on
the mount appear to be owned by the current user.
Signed-off-by: Jeff Layton <jlayton at redhat.com>
---
fs/cifs/inode.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index e8cb95d..4a0e5e7 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -1659,11 +1659,19 @@ check_inval:
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_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_MULTISES &&
+ !tcon->unix_ext) {
+ stat->uid = current_fsuid();
+ stat->gid = current_fsgid();
+ }
}
return err;
}
--
1.6.6.1
More information about the linux-cifs-client
mailing list