Make sure that the list is always initialized for initial namespaces. Fixes: 885fc8ac0a4d ("nstree: make iterator generic") Signed-off-by: Christian Brauner --- 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