Re: [PATCH 08/11] kernel: pid_namespace: simplify sysctls with register_sysctl()

Jeff Xu
2023-03-02T23:14:33Z

On Thu, Mar 2, 2023 at 12:28 PM Luis Chamberlain <mcgrof@kernel.org> wrote:
>
> register_sysctl_paths() is only required if your child (directories)
> have entries and pid_namespace does not. So use register_sysctl_init()
> instead where we don't care about the return value and use
> register_sysctl() where we do.
>
> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
> ---
> kernel/pid_namespace.c | 3 +--
> kernel/pid_sysctl.h | 3 +--
> 2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
> index 46e0d5a3f91f..b43eee07b00c 100644
> --- a/kernel/pid_namespace.c
> +++ b/kernel/pid_namespace.c
> @@ -314,7 +314,6 @@ static struct ctl_table pid_ns_ctl_table[] = {
> },
> { }
> };
> -static struct ctl_path kern_path[] = { { .procname = "kernel", }, { } };
> #endif /* CONFIG_CHECKPOINT_RESTORE */
>
> int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd)
> @@ -473,7 +472,7 @@ static __init int pid_namespaces_init(void)
> pid_ns_cachep = KMEM_CACHE(pid_namespace, SLAB_PANIC | SLAB_ACCOUNT);
>
> #ifdef CONFIG_CHECKPOINT_RESTORE
> - register_sysctl_paths(kern_path, pid_ns_ctl_table);
> + register_sysctl_init("kernel", pid_ns_ctl_table);
> #endif
>
> register_pid_ns_sysctl_table_vm();
> diff --git a/kernel/pid_sysctl.h b/kernel/pid_sysctl.h
> index e22d072e1e24..d67a4d45bb42 100644
> --- a/kernel/pid_sysctl.h
> +++ b/kernel/pid_sysctl.h
> @@ -46,10 +46,9 @@ static struct ctl_table pid_ns_ctl_table_vm[] = {
> },
> { }
> };
> -static struct ctl_path vm_path[] = { { .procname = "vm", }, { } };
> static inline void register_pid_ns_sysctl_table_vm(void)
> {
> - register_sysctl_paths(vm_path, pid_ns_ctl_table_vm);
> + register_sysctl("vm", pid_ns_ctl_table_vm);
> }
> #else
> static inline void initialize_memfd_noexec_scope(struct pid_namespace *ns) {}
> --
> 2.39.1
>
Acked-by: Jeff Xu <jeffxu@google.com>