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

nscommon: move to separate file



It's really awkward spilling the ns common infrastructure into multiple
headers. Move it to a separate file.

Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent b2a0b192
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -31,6 +31,9 @@ struct ns_common {
	};
};

int ns_common_init(struct ns_common *ns, const struct proc_ns_operations *ops,
		   bool alloc_inum);

#define to_ns_common(__ns)                              \
	_Generic((__ns),                                \
		struct cgroup_namespace *: &(__ns)->ns, \
+0 −19
Original line number Diff line number Diff line
@@ -66,25 +66,6 @@ static inline void proc_free_inum(unsigned int inum) {}

#endif /* CONFIG_PROC_FS */

static inline int ns_common_init(struct ns_common *ns,
				 const struct proc_ns_operations *ops,
				 bool alloc_inum)
{
	if (alloc_inum) {
		int ret;
		ret = proc_alloc_inum(&ns->inum);
		if (ret)
			return ret;
	}
	refcount_set(&ns->count, 1);
	ns->stashed = NULL;
	ns->ops = ops;
	ns->ns_id = 0;
	RB_CLEAR_NODE(&ns->ns_tree_node);
	INIT_LIST_HEAD(&ns->ns_list_node);
	return 0;
}

#define ns_free_inum(ns) proc_free_inum((ns)->inum)

#define get_proc_ns(inode) ((struct ns_common *)(inode)->i_private)
+1 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ obj-y = fork.o exec_domain.o panic.o \
	    sysctl.o capability.o ptrace.o user.o \
	    signal.o sys.o umh.o workqueue.o pid.o task_work.o \
	    extable.o params.o \
	    kthread.o sys_ni.o nsproxy.o nstree.o \
	    kthread.o sys_ni.o nsproxy.o nstree.o nscommon.o \
	    notifier.o ksysfs.o cred.o reboot.o \
	    async.o range.o smpboot.o ucount.o regset.o ksyms_common.o

kernel/nscommon.c

0 → 100644
+21 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only

#include <linux/ns_common.h>

int ns_common_init(struct ns_common *ns, const struct proc_ns_operations *ops,
		   bool alloc_inum)
{
	if (alloc_inum) {
		int ret;
		ret = proc_alloc_inum(&ns->inum);
		if (ret)
			return ret;
	}
	refcount_set(&ns->count, 1);
	ns->stashed = NULL;
	ns->ops = ops;
	ns->ns_id = 0;
	RB_CLEAR_NODE(&ns->ns_tree_node);
	INIT_LIST_HEAD(&ns->ns_list_node);
	return 0;
}