[PATCH v2 22/33] pid: support ns lookup

Christian Brauner posted 33 patches 2 weeks, 6 days ago
[PATCH v2 22/33] pid: support ns lookup
Posted by Christian Brauner 2 weeks, 6 days ago
Support the generic ns lookup infrastructure to support file handles for
namespaces.

Signed-off-by: Christian Brauner <brauner@kernel.org>
---
 kernel/pid_namespace.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
index 20ce4052d1c5..228ae20299f9 100644
--- a/kernel/pid_namespace.c
+++ b/kernel/pid_namespace.c
@@ -23,6 +23,7 @@
 #include <linux/sched/task.h>
 #include <linux/sched/signal.h>
 #include <linux/idr.h>
+#include <linux/nstree.h>
 #include <uapi/linux/wait.h>
 #include "pid_sysctl.h"
 
@@ -122,6 +123,7 @@ static struct pid_namespace *create_pid_namespace(struct user_namespace *user_ns
 	ns->memfd_noexec_scope = pidns_memfd_noexec_scope(parent_pid_ns);
 #endif
 
+	ns_tree_add(ns);
 	return ns;
 
 out_free_inum:
@@ -147,6 +149,7 @@ static void delayed_free_pidns(struct rcu_head *p)
 
 static void destroy_pid_namespace(struct pid_namespace *ns)
 {
+	ns_tree_remove(ns);
 	unregister_pidns_sysctls(ns);
 
 	ns_free_inum(&ns->ns);
@@ -473,6 +476,7 @@ static __init int pid_namespaces_init(void)
 #endif
 
 	register_pid_ns_sysctl_table_vm();
+	ns_tree_add(&init_pid_ns);
 	return 0;
 }
 

-- 
2.47.3
Re: [PATCH v2 22/33] pid: support ns lookup
Posted by Jan Kara 2 weeks, 3 days ago
On Fri 12-09-25 13:52:45, Christian Brauner wrote:
> Support the generic ns lookup infrastructure to support file handles for
> namespaces.
> 
> Signed-off-by: Christian Brauner <brauner@kernel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  kernel/pid_namespace.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
> index 20ce4052d1c5..228ae20299f9 100644
> --- a/kernel/pid_namespace.c
> +++ b/kernel/pid_namespace.c
> @@ -23,6 +23,7 @@
>  #include <linux/sched/task.h>
>  #include <linux/sched/signal.h>
>  #include <linux/idr.h>
> +#include <linux/nstree.h>
>  #include <uapi/linux/wait.h>
>  #include "pid_sysctl.h"
>  
> @@ -122,6 +123,7 @@ static struct pid_namespace *create_pid_namespace(struct user_namespace *user_ns
>  	ns->memfd_noexec_scope = pidns_memfd_noexec_scope(parent_pid_ns);
>  #endif
>  
> +	ns_tree_add(ns);
>  	return ns;
>  
>  out_free_inum:
> @@ -147,6 +149,7 @@ static void delayed_free_pidns(struct rcu_head *p)
>  
>  static void destroy_pid_namespace(struct pid_namespace *ns)
>  {
> +	ns_tree_remove(ns);
>  	unregister_pidns_sysctls(ns);
>  
>  	ns_free_inum(&ns->ns);
> @@ -473,6 +476,7 @@ static __init int pid_namespaces_init(void)
>  #endif
>  
>  	register_pid_ns_sysctl_table_vm();
> +	ns_tree_add(&init_pid_ns);
>  	return 0;
>  }
>  
> 
> -- 
> 2.47.3
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR