1f74ca6daSChristian Brauner // SPDX-License-Identifier: GPL-2.0-only 2f74ca6daSChristian Brauner 3f74ca6daSChristian Brauner #include <linux/ns_common.h> 45612ff3eSChristian Brauner #include <linux/proc_ns.h> 5f74ca6daSChristian Brauner 65612ff3eSChristian 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); 145612ff3eSChristian Brauner 155612ff3eSChristian Brauner if (inum) { 165612ff3eSChristian Brauner ns->inum = inum; 17f74ca6daSChristian Brauner return 0; 18f74ca6daSChristian Brauner } 195612ff3eSChristian Brauner return proc_alloc_inum(&ns->inum); 205612ff3eSChristian Brauner } 21*be5f21d3SChristian Brauner 22*be5f21d3SChristian Brauner void __ns_common_free(struct ns_common *ns) 23*be5f21d3SChristian Brauner { 24*be5f21d3SChristian Brauner proc_free_inum(ns->inum); 25*be5f21d3SChristian Brauner } 26