]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
fs/9p: mkdir fix for setting S_ISGID bit as per parent directory
authorHarsh Prateek Bora <harsh@linux.vnet.ibm.com>
Wed, 18 Aug 2010 06:01:52 +0000 (06:01 +0000)
committerEric Van Hensbergen <ericvh@gmail.com>
Thu, 28 Oct 2010 14:08:45 +0000 (09:08 -0500)
The current implementation of 9p client mkdir function does not
set the S_ISGID mode bit for the directory being created if the
parent directory has this bit set. This patch fixes this problem
so that the newly created directory inherits the gid from parent
directory and not from the process creating this directory, when
the S_ISGID bit is set in parent directory.

Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
fs/9p/vfs_inode.c

index 88efc161743b4769f465d2e7e4b093be72f8d276..c3d200d41dcaf3848170fa147c26f73520ee4c96 100644 (file)
@@ -876,6 +876,8 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir, struct dentry *dentry,
        v9ses = v9fs_inode2v9ses(dir);
 
        mode |= S_IFDIR;
+       if (dir->i_mode & S_ISGID)
+               mode |= S_ISGID;
        dir_dentry = v9fs_dentry_from_dir_inode(dir);
        dfid = v9fs_fid_lookup(dir_dentry);
        if (IS_ERR(dfid)) {