]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ocfs2: fix SGID not inherited issue
authorJunxiao Bi <junxiao.bi@oracle.com>
Mon, 7 Dec 2015 03:00:34 +0000 (11:00 +0800)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Wed, 9 Dec 2015 17:29:06 +0000 (09:29 -0800)
Oracle-bug: 22311520

commit 8f1eb48758aa ("ocfs2: fix umask ignored issue") introduced an issue,
SGID of sub dir was not inherited from its parents dir. It is because SGID
is set into "inode->i_mode" in ocfs2_get_init_inode(), but is overwritten
by "mode" which don't have SGID set later.

Fixes: 8f1eb48758aa ("ocfs2: fix umask ignored issue")
Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
Cc: <stable@vger.kernel.org>
Acked-by: Srinivas Eeda <srinivas.eeda@oracle.com>
fs/ocfs2/namei.c

index ee593e11cdb2b089fb1bfa949ef1c767a5d2bee5..94ed099bf10189fc0be2fbeb4c0f9495e8a5d2ad 100644 (file)
@@ -360,13 +360,11 @@ static int ocfs2_mknod(struct inode *dir,
                goto leave;
        }
 
-       status = posix_acl_create(dir, &mode, &default_acl, &acl);
+       status = posix_acl_create(dir, &inode->i_mode, &default_acl, &acl);
        if (status) {
                mlog_errno(status);
                goto leave;
        }
-       /* update inode->i_mode after mask with "umask". */
-       inode->i_mode = mode;
 
        handle = ocfs2_start_trans(osb, ocfs2_mknod_credits(osb->sb,
                                                            S_ISDIR(mode),