]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ns: uniformly initialize ns_common
authorChristian Brauner <brauner@kernel.org>
Fri, 12 Sep 2025 11:52:30 +0000 (13:52 +0200)
committerChristian Brauner <brauner@kernel.org>
Fri, 19 Sep 2025 12:26:13 +0000 (14:26 +0200)
No point in cargo-culting the same code across all the different types.
Use one common initializer.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
include/linux/proc_ns.h

index 5e1a4b378b790ba6f3f4960244ce90f597ce4265..dbb119bda097f37d4cfffa0a295b224a3742fdcf 100644 (file)
@@ -72,6 +72,22 @@ static inline int ns_alloc_inum(struct ns_common *ns)
        return proc_alloc_inum(&ns->inum);
 }
 
+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;
+       return 0;
+}
+
 #define ns_free_inum(ns) proc_free_inum((ns)->inum)
 
 #define get_proc_ns(inode) ((struct ns_common *)(inode)->i_private)