mirror of
https://github.com/torvalds/linux.git
synced 2025-11-02 01:29:02 +02:00
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: Jan Kara <jack@suse.cz> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
b2a0b19208
commit
f74ca6da11
4 changed files with 25 additions and 20 deletions
|
|
@ -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) \
|
#define to_ns_common(__ns) \
|
||||||
_Generic((__ns), \
|
_Generic((__ns), \
|
||||||
struct cgroup_namespace *: &(__ns)->ns, \
|
struct cgroup_namespace *: &(__ns)->ns, \
|
||||||
|
|
|
||||||
|
|
@ -66,25 +66,6 @@ static inline void proc_free_inum(unsigned int inum) {}
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#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 ns_free_inum(ns) proc_free_inum((ns)->inum)
|
||||||
|
|
||||||
#define get_proc_ns(inode) ((struct ns_common *)(inode)->i_private)
|
#define get_proc_ns(inode) ((struct ns_common *)(inode)->i_private)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ obj-y = fork.o exec_domain.o panic.o \
|
||||||
sysctl.o capability.o ptrace.o user.o \
|
sysctl.o capability.o ptrace.o user.o \
|
||||||
signal.o sys.o umh.o workqueue.o pid.o task_work.o \
|
signal.o sys.o umh.o workqueue.o pid.o task_work.o \
|
||||||
extable.o params.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 \
|
notifier.o ksysfs.o cred.o reboot.o \
|
||||||
async.o range.o smpboot.o ucount.o regset.o ksyms_common.o
|
async.o range.o smpboot.o ucount.o regset.o ksyms_common.o
|
||||||
|
|
||||||
|
|
|
||||||
21
kernel/nscommon.c
Normal file
21
kernel/nscommon.c
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
// 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;
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue