diff mbox

ocfs2: fix SGID not inherited issue

Message ID 1449461346-21864-1-git-send-email-junxiao.bi@oracle.com (mailing list archive)
State New, archived
Headers show

Commit Message

Junxiao Bi Dec. 7, 2015, 4:09 a.m. UTC
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>
---
 fs/ocfs2/namei.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Srinivas Eeda Dec. 8, 2015, 1:07 a.m. UTC | #1
Thanks Junxiao!

Acked-by: Srinivas Eeda <srinivas.eeda@oracle.com>

On 12/06/2015 08:09 PM, Junxiao Bi 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")
> Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
> Cc: <stable@vger.kernel.org>
> ---
>   fs/ocfs2/namei.c |    4 +---
>   1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
> index a03f6f4..3123408 100644
> --- a/fs/ocfs2/namei.c
> +++ b/fs/ocfs2/namei.c
> @@ -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),
Andrew Morton Dec. 8, 2015, 9:22 p.m. UTC | #2
On Mon,  7 Dec 2015 12:09:06 +0800 Junxiao Bi <junxiao.bi@oracle.com> 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")
> Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
> Cc: <stable@vger.kernel.org>

8f1eb48758aa is only in 4.4-rcX so I removed the cc:stable.
Junxiao Bi Dec. 9, 2015, 2:28 a.m. UTC | #3
Hi Andrew,

On 12/09/2015 05:22 AM, Andrew Morton wrote:
> On Mon,  7 Dec 2015 12:09:06 +0800 Junxiao Bi <junxiao.bi@oracle.com> 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")
>> Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
>> Cc: <stable@vger.kernel.org>
> 
> 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.
>
Andrew Morton Dec. 10, 2015, 10:02 p.m. UTC | #4
On Wed, 9 Dec 2015 10:28:17 +0800 Junxiao Bi <junxiao.bi@oracle.com> wrote:

> Hi Andrew,
> 
> On 12/09/2015 05:22 AM, Andrew Morton wrote:
> > On Mon,  7 Dec 2015 12:09:06 +0800 Junxiao Bi <junxiao.bi@oracle.com> 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")
> >> Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
> >> Cc: <stable@vger.kernel.org>
> > 
> > 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.
diff mbox

Patch

diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index a03f6f4..3123408 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -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),