diff mbox series

cgroup_dir_mk: set the umask to '0' before creating the subdir

Message ID 20240301102347.3035546-1-liwang@redhat.com
State Accepted
Headers show
Series cgroup_dir_mk: set the umask to '0' before creating the subdir | expand

Commit Message

Li Wang March 1, 2024, 10:23 a.m. UTC
This is to resolve the permission issue when creating
a new subdir in the cgroup, in case of system's default
umask is 0077, this will trigger issues for LTP case.

 cgroup_core01.c will report following error msg:
 cgroup_core01.c:50: TBROK: openat(21</sys/fs/cgroup/memory/ltp/test-3519/child_b>, 'tasks', 2, 0): EACCES (13)

Signed-off-by: Li Wang <liwang@redhat.com>
Cc: Wei Gao <wegao@suse.com>
---

Notes:
    Hi Wei, can you help confirm if this patch works for you?

 lib/tst_cgroup.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Petr Vorel March 1, 2024, 11:51 a.m. UTC | #1
Hi Li, Wei,

> This is to resolve the permission issue when creating
> a new subdir in the cgroup, in case of system's default
> umask is 0077, this will trigger issues for LTP case.

>  cgroup_core01.c will report following error msg:
>  cgroup_core01.c:50: TBROK: openat(21</sys/fs/cgroup/memory/ltp/test-3519/child_b>, 'tasks', 2, 0): EACCES (13)

Reviewed-by: Petr Vorel <pvorel@suse.cz>

Setting this on single place which *should* fix problems, but still not affect
whole LTP API looks good to me. BTW there were more tests which needed it,
e.g. testcases/kernel/syscalls/statx/statx07.c
https://patchwork.ozlabs.org/project/ltp/patch/20240222031018.12281-3-wegao@suse.com/

Therefore this solves just some problems.

Kind regards,
Petr
Wei Gao March 3, 2024, 9:46 a.m. UTC | #2
On Fri, Mar 01, 2024 at 06:23:47PM +0800, Li Wang wrote:
> This is to resolve the permission issue when creating
> a new subdir in the cgroup, in case of system's default
> umask is 0077, this will trigger issues for LTP case.
> 
>  cgroup_core01.c will report following error msg:
>  cgroup_core01.c:50: TBROK: openat(21</sys/fs/cgroup/memory/ltp/test-3519/child_b>, 'tasks', 2, 0): EACCES (13)
> 
> Signed-off-by: Li Wang <liwang@redhat.com>
> Cc: Wei Gao <wegao@suse.com>
> ---
> 
> Notes:
>     Hi Wei, can you help confirm if this patch works for you?

@Li I have tested your patch and it can work.
@Li @Petr Thanks for your patch and comments, i suppose this patch can be merged.

> 
>  lib/tst_cgroup.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
> index a8a598e0e..f6afb51d6 100644
> --- a/lib/tst_cgroup.c
> +++ b/lib/tst_cgroup.c
> @@ -361,6 +361,7 @@ static void cgroup_dir_mk(const struct cgroup_dir *const parent,
>  			  struct cgroup_dir *const new)
>  {
>  	const char *dpath;
> +	mode_t old_umask = umask(0);
>  
>  	new->dir_root = parent->dir_root;
>  	new->dir_name = dir_name;
> @@ -394,6 +395,7 @@ static void cgroup_dir_mk(const struct cgroup_dir *const parent,
>  opendir:
>  	new->dir_fd = SAFE_OPENAT(parent->dir_fd, dir_name,
>  				  O_PATH | O_DIRECTORY);
> +	umask(old_umask);
>  }
>  
>  #define PATH_MAX_STRLEN 4095
> -- 
> 2.40.1
>
Wei Gao March 3, 2024, 10:33 a.m. UTC | #3
On Fri, Mar 01, 2024 at 12:51:31PM +0100, Petr Vorel wrote:
> Hi Li, Wei,
> 
> > This is to resolve the permission issue when creating
> > a new subdir in the cgroup, in case of system's default
> > umask is 0077, this will trigger issues for LTP case.
> 
> >  cgroup_core01.c will report following error msg:
> >  cgroup_core01.c:50: TBROK: openat(21</sys/fs/cgroup/memory/ltp/test-3519/child_b>, 'tasks', 2, 0): EACCES (13)
> 
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
> 
> Setting this on single place which *should* fix problems, but still not affect
> whole LTP API looks good to me. BTW there were more tests which needed it,
> e.g. testcases/kernel/syscalls/statx/statx07.c
> https://patchwork.ozlabs.org/project/ltp/patch/20240222031018.12281-3-wegao@suse.com/
> 
Send new patch for stat07:
https://patchwork.ozlabs.org/project/ltp/patch/20240303103105.13401-1-wegao@suse.com/

> Therefore this solves just some problems.
> 
> Kind regards,
> Petr
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp
Petr Vorel March 3, 2024, 12:42 p.m. UTC | #4
Hi Li, Wei,

...
> > Notes:
> >     Hi Wei, can you help confirm if this patch works for you?

> @Li I have tested your patch and it can work.
> @Li @Petr Thanks for your patch and comments, i suppose this patch can be merged.

I added Wei's RBT and TBT and merged.
Thank to you both!

Kind regards,
Petr
diff mbox series

Patch

diff --git a/lib/tst_cgroup.c b/lib/tst_cgroup.c
index a8a598e0e..f6afb51d6 100644
--- a/lib/tst_cgroup.c
+++ b/lib/tst_cgroup.c
@@ -361,6 +361,7 @@  static void cgroup_dir_mk(const struct cgroup_dir *const parent,
 			  struct cgroup_dir *const new)
 {
 	const char *dpath;
+	mode_t old_umask = umask(0);
 
 	new->dir_root = parent->dir_root;
 	new->dir_name = dir_name;
@@ -394,6 +395,7 @@  static void cgroup_dir_mk(const struct cgroup_dir *const parent,
 opendir:
 	new->dir_fd = SAFE_OPENAT(parent->dir_fd, dir_name,
 				  O_PATH | O_DIRECTORY);
+	umask(old_umask);
 }
 
 #define PATH_MAX_STRLEN 4095