Commit 7c7298cf authored by Harsh Prateek Bora's avatar Harsh Prateek Bora Committed by Eric Van Hensbergen

fs/9p: mkdir fix for setting S_ISGID bit as per parent directory

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: default avatarHarsh Prateek Bora <harsh@linux.vnet.ibm.com>
Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
parent 8812a3d5
...@@ -876,6 +876,8 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir, struct dentry *dentry, ...@@ -876,6 +876,8 @@ static int v9fs_vfs_mkdir_dotl(struct inode *dir, struct dentry *dentry,
v9ses = v9fs_inode2v9ses(dir); v9ses = v9fs_inode2v9ses(dir);
mode |= S_IFDIR; mode |= S_IFDIR;
if (dir->i_mode & S_ISGID)
mode |= S_ISGID;
dir_dentry = v9fs_dentry_from_dir_inode(dir); dir_dentry = v9fs_dentry_from_dir_inode(dir);
dfid = v9fs_fid_lookup(dir_dentry); dfid = v9fs_fid_lookup(dir_dentry);
if (IS_ERR(dfid)) { if (IS_ERR(dfid)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment