]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ipc: support ns lookup
authorChristian Brauner <brauner@kernel.org>
Fri, 12 Sep 2025 11:52:43 +0000 (13:52 +0200)
committerChristian Brauner <brauner@kernel.org>
Fri, 19 Sep 2025 12:26:15 +0000 (14:26 +0200)
Support the generic ns lookup infrastructure to support file handles for
namespaces.

Signed-off-by: Christian Brauner <brauner@kernel.org>
ipc/msgutil.c
ipc/namespace.c
ipc/shm.c

index c7be0c79264767b74d6f3c716af16366034ceb1e..bbf61275df41e11bf46738d987bf1b41b73b0cf4 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/proc_ns.h>
 #include <linux/uaccess.h>
 #include <linux/sched.h>
+#include <linux/nstree.h>
 
 #include "util.h"
 
index d4188a88ee57b36d86d51b3c297d0644cd6577c8..9f923c1a1eb30c7d9aeec6299d02498a9c88e6fc 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/mount.h>
 #include <linux/user_namespace.h>
 #include <linux/proc_ns.h>
+#include <linux/nstree.h>
 #include <linux/sched/task.h>
 
 #include "util.h"
@@ -85,6 +86,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
 
        sem_init_ns(ns);
        shm_init_ns(ns);
+       ns_tree_add(ns);
 
        return ns;
 
@@ -201,6 +203,7 @@ void put_ipc_ns(struct ipc_namespace *ns)
                mq_clear_sbinfo(ns);
                spin_unlock(&mq_lock);
 
+               ns_tree_remove(ns);
                if (llist_add(&ns->mnt_llist, &free_ipc_list))
                        schedule_work(&free_ipc_work);
        }
index a9310b6dbbc369ee4089645fdb103666a8e8a859..3db36773dd102350fc0dc7c35865ff3147ce2429 100644 (file)
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -45,6 +45,7 @@
 #include <linux/mount.h>
 #include <linux/ipc_namespace.h>
 #include <linux/rhashtable.h>
+#include <linux/nstree.h>
 
 #include <linux/uaccess.h>
 
@@ -148,6 +149,7 @@ void shm_exit_ns(struct ipc_namespace *ns)
 static int __init ipc_ns_init(void)
 {
        shm_init_ns(&init_ipc_ns);
+       ns_tree_add(&init_ipc_ns);
        return 0;
 }