[PATCH v2 08/63] ns: initialize ns_list_node for initial namespaces
From: Christian Brauner <brauner@kernel.org>
Date: 2025-10-22 16:06:49
Also in:
bpf, cgroups, linux-fsdevel, lkml
Subsystem:
control group (cgroup), filesystems (vfs and infrastructure), posix clocks and timers, the rest · Maintainers:
Tejun Heo, Johannes Weiner, Michal Koutný, Alexander Viro, Christian Brauner, Anna-Maria Behnsen, Frederic Weisbecker, Thomas Gleixner, Linus Torvalds
Make sure that the list is always initialized for initial namespaces.
Fixes: 885fc8ac0a4d ("nstree: make iterator generic")
Signed-off-by: Christian Brauner <brauner@kernel.org>
---
fs/namespace.c | 1 +
init/version-timestamp.c | 1 +
ipc/msgutil.c | 1 +
kernel/cgroup/cgroup.c | 1 +
kernel/pid.c | 1 +
kernel/time/namespace.c | 1 +
kernel/user.c | 1 +
7 files changed, 7 insertions(+)
diff --git a/fs/namespace.c b/fs/namespace.c
index d82910f33dc4..8ef8ba3dd316 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c@@ -5993,6 +5993,7 @@ struct mnt_namespace init_mnt_ns = { .passive = REFCOUNT_INIT(1), .mounts = RB_ROOT, .poll = __WAIT_QUEUE_HEAD_INITIALIZER(init_mnt_ns.poll), + .ns.ns_list_node = LIST_HEAD_INIT(init_mnt_ns.ns.ns_list_node), }; static void __init init_mount_tree(void)
diff --git a/init/version-timestamp.c b/init/version-timestamp.c
index d071835121c2..61b2405d97f9 100644
--- a/init/version-timestamp.c
+++ b/init/version-timestamp.c@@ -20,6 +20,7 @@ struct uts_namespace init_uts_ns = { }, .user_ns = &init_user_ns, .ns.inum = ns_init_inum(&init_uts_ns), + .ns.ns_list_node = LIST_HEAD_INIT(init_uts_ns.ns.ns_list_node), #ifdef CONFIG_UTS_NS .ns.ops = &utsns_operations, #endif
diff --git a/ipc/msgutil.c b/ipc/msgutil.c
index 7a03f6d03de3..c9469fbce27c 100644
--- a/ipc/msgutil.c
+++ b/ipc/msgutil.c@@ -30,6 +30,7 @@ struct ipc_namespace init_ipc_ns = { .ns.__ns_ref = REFCOUNT_INIT(1), .user_ns = &init_user_ns, .ns.inum = ns_init_inum(&init_ipc_ns), + .ns.ns_list_node = LIST_HEAD_INIT(init_ipc_ns.ns.ns_list_node), #ifdef CONFIG_IPC_NS .ns.ops = &ipcns_operations, #endif
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 6ae5f48cf64e..a82918da8bae 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c@@ -256,6 +256,7 @@ struct cgroup_namespace init_cgroup_ns = { .ns.inum = ns_init_inum(&init_cgroup_ns), .root_cset = &init_css_set, .ns.ns_type = ns_common_type(&init_cgroup_ns), + .ns.ns_list_node = LIST_HEAD_INIT(init_cgroup_ns.ns.ns_list_node), }; static struct file_system_type cgroup2_fs_type;
diff --git a/kernel/pid.c b/kernel/pid.c
index 4fffec767a63..cb7574ca00f7 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c@@ -78,6 +78,7 @@ struct pid_namespace init_pid_ns = { .child_reaper = &init_task, .user_ns = &init_user_ns, .ns.inum = ns_init_inum(&init_pid_ns), + .ns.ns_list_node = LIST_HEAD_INIT(init_pid_ns.ns.ns_list_node), #ifdef CONFIG_PID_NS .ns.ops = &pidns_operations, #endif
diff --git a/kernel/time/namespace.c b/kernel/time/namespace.c
index 5b6997f4dc3d..ee05cad288da 100644
--- a/kernel/time/namespace.c
+++ b/kernel/time/namespace.c@@ -484,6 +484,7 @@ struct time_namespace init_time_ns = { .ns.inum = ns_init_inum(&init_time_ns), .ns.ops = &timens_operations, .frozen_offsets = true, + .ns.ns_list_node = LIST_HEAD_INIT(init_time_ns.ns.ns_list_node), }; void __init time_ns_init(void)
diff --git a/kernel/user.c b/kernel/user.c
index 0163665914c9..b9cf3b056a71 100644
--- a/kernel/user.c
+++ b/kernel/user.c@@ -70,6 +70,7 @@ struct user_namespace init_user_ns = { .owner = GLOBAL_ROOT_UID, .group = GLOBAL_ROOT_GID, .ns.inum = ns_init_inum(&init_user_ns), + .ns.ns_list_node = LIST_HEAD_INIT(init_user_ns.ns.ns_list_node), #ifdef CONFIG_USER_NS .ns.ops = &userns_operations, #endif
--
2.47.3