Unverified Commit c2bbd2db authored by Christian Brauner's avatar Christian Brauner
Browse files

ns: drop custom reference count initialization for initial namespaces

Initial namespaces don't modify their reference count anymore.
They remain fixed at one so drop the custom refcount initializations.

Link: https://patch.msgid.link/20251110-work-namespace-nstree-fixes-v1-16-e8a9264e0fb9@kernel.org


Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 282879af
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -5986,7 +5986,7 @@ SYSCALL_DEFINE4(listmount, const struct mnt_id_req __user *, req,
}

struct mnt_namespace init_mnt_ns = {
	.ns		= NS_COMMON_INIT(init_mnt_ns, 1),
	.ns		= NS_COMMON_INIT(init_mnt_ns),
	.user_ns	= &init_user_ns,
	.passive	= REFCOUNT_INIT(1),
	.mounts		= RB_ROOT,
+2 −2
Original line number Diff line number Diff line
@@ -26,14 +26,14 @@ static __always_inline bool is_ns_init_id(const struct ns_common *ns)
	return ns->ns_id <= NS_LAST_INIT_ID;
}

#define NS_COMMON_INIT(nsname, refs)									\
#define NS_COMMON_INIT(nsname)										\
{													\
	.ns_type			= ns_common_type(&nsname),					\
	.ns_id				= ns_init_id(&nsname),						\
	.inum				= ns_init_inum(&nsname),					\
	.ops				= to_ns_operations(&nsname),					\
	.stashed			= NULL,								\
	.__ns_ref			= REFCOUNT_INIT(refs),						\
	.__ns_ref			= REFCOUNT_INIT(1),						\
	.__ns_ref_active		= ATOMIC_INIT(1),						\
	.ns_unified_node.ns_list_entry	= LIST_HEAD_INIT(nsname.ns.ns_unified_node.ns_list_entry),	\
	.ns_tree_node.ns_list_entry	= LIST_HEAD_INIT(nsname.ns.ns_tree_node.ns_list_entry),		\
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@
#include <linux/utsname.h>

struct uts_namespace init_uts_ns = {
	.ns = NS_COMMON_INIT(init_uts_ns, 2),
	.ns = NS_COMMON_INIT(init_uts_ns),
	.name = {
		.sysname	= UTS_SYSNAME,
		.nodename	= UTS_NODENAME,
+1 −1
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ DEFINE_SPINLOCK(mq_lock);
 * and not CONFIG_IPC_NS.
 */
struct ipc_namespace init_ipc_ns = {
	.ns = NS_COMMON_INIT(init_ipc_ns, 1),
	.ns = NS_COMMON_INIT(init_ipc_ns),
	.user_ns = &init_user_ns,
};

+1 −1
Original line number Diff line number Diff line
@@ -250,7 +250,7 @@ bool cgroup_enable_per_threadgroup_rwsem __read_mostly;

/* cgroup namespace for init task */
struct cgroup_namespace init_cgroup_ns = {
	.ns		= NS_COMMON_INIT(init_cgroup_ns, 2),
	.ns		= NS_COMMON_INIT(init_cgroup_ns),
	.user_ns	= &init_user_ns,
	.root_cset	= &init_css_set,
};
Loading