Skip to contentSkip to conversation

ocfs2: fix SGID not inherited issue

PATCH New Junxiao Bi 3 participants 5 messages Dec 7, 2015 – Dec 10, 2015 OCFS2

lore
Share & tools
lore

Junxiao Bi

author
#0 lore raw

PATCH 1/1 ocfs2: fix SGID not inherited issue

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")
---
 fs/ocfs2/namei.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
fs/ocfs2/namei.c +1 -3
index a03f6f4..3123408 100644
@@ -367,13 +367,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),
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 1/1 ocfs2: fix SGID not inherited issue

Thanks Junxiao!

Quoted 31 lines · Junxiao Bi

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")
---
  fs/ocfs2/namei.c |    4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)
fs/ocfs2/namei.c +1 -3
index a03f6f4..3123408 100644
@@ -367,13 +367,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),
#2 lore raw

PATCH 1/1 ocfs2: fix SGID not inherited issue

In reply to Junxiao Bi
Quoted 8 lines · On Mon, 7 Dec 2015 12:09:06 +0800 Junxiao Bi <[email protected]> wrote:

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")

8f1eb48758aa is only in 4.4-rcX so I removed the cc:stable.

author
#3 lore raw

PATCH 1/1 ocfs2: fix SGID not inherited issue

Hi Andrew,

Quoted 7 lines · Andrew Morton
Quoted 5 lines · On Mon, 7 Dec 2015 12:09:06 +0800 Junxiao Bi <[email protected]> wrote:

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.

Quoted 5 lines
Quoted 3 lines
Fixes 8f1eb48758aa ("ocfs2: fix umask ignored issue")

8f1eb48758aa is only in 4.4-rcX so I removed the cc:stable.

If 8f1eb48758aa is merged into stable, but this patch not, there will be a regression issue in stable branch?

Thanks,
Junxiao.

Quoted 1 line
#4 lore raw

PATCH 1/1 ocfs2: fix SGID not inherited issue

Quoted 10 lines · On Wed, 9 Dec 2015 10:28:17 +0800 Junxiao Bi <[email protected]> wrote:

Hi Andrew,

Quoted 7 lines · Andrew Morton
Quoted 5 lines · On Mon, 7 Dec 2015 12:09:06 +0800 Junxiao Bi <[email protected]> wrote:

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.

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Fixes 8f1eb48758aa ("ocfs2: fix umask ignored issue")

8f1eb48758aa is only in 4.4-rcX so I removed the cc:stable.

If 8f1eb48758aa is merged into stable, but this patch not, there will be a regression issue in stable branch?

Ah, yes, right you are, thanks.