xref: /linux/kernel/nscommon.c (revision 5612ff3ec588be09f11a9424db6d1186bcdeb3fa)
1f74ca6daSChristian Brauner // SPDX-License-Identifier: GPL-2.0-only
2f74ca6daSChristian Brauner 
3f74ca6daSChristian Brauner #include <linux/ns_common.h>
4*5612ff3eSChristian Brauner #include <linux/proc_ns.h>
5f74ca6daSChristian Brauner 
6*5612ff3eSChristian Brauner int __ns_common_init(struct ns_common *ns, const struct proc_ns_operations *ops, int inum)
7f74ca6daSChristian Brauner {
8f74ca6daSChristian Brauner 	refcount_set(&ns->count, 1);
9f74ca6daSChristian Brauner 	ns->stashed = NULL;
10f74ca6daSChristian Brauner 	ns->ops = ops;
11f74ca6daSChristian Brauner 	ns->ns_id = 0;
12f74ca6daSChristian Brauner 	RB_CLEAR_NODE(&ns->ns_tree_node);
13f74ca6daSChristian Brauner 	INIT_LIST_HEAD(&ns->ns_list_node);
14*5612ff3eSChristian Brauner 
15*5612ff3eSChristian Brauner 	if (inum) {
16*5612ff3eSChristian Brauner 		ns->inum = inum;
17f74ca6daSChristian Brauner 		return 0;
18f74ca6daSChristian Brauner 	}
19*5612ff3eSChristian Brauner 	return proc_alloc_inum(&ns->inum);
20*5612ff3eSChristian Brauner }
21