new helpers: ns_alloc_inum/ns_free_inum
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 1 Nov 2014 04:45:45 +0000 (00:45 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 4 Dec 2014 19:34:36 +0000 (14:34 -0500)
take struct ns_common *, for now simply wrappers around proc_{alloc,free}_inum()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namespace.c
include/linux/proc_ns.h
ipc/namespace.c
kernel/pid_namespace.c
kernel/user_namespace.c
kernel/utsname.c
net/core/net_namespace.c

index b9c16c3..30738d2 100644 (file)
@@ -2645,7 +2645,7 @@ dput_out:
 
 static void free_mnt_ns(struct mnt_namespace *ns)
 {
-       proc_free_inum(ns->ns.inum);
+       ns_free_inum(&ns->ns);
        put_user_ns(ns->user_ns);
        kfree(ns);
 }
@@ -2667,7 +2667,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
        new_ns = kmalloc(sizeof(struct mnt_namespace), GFP_KERNEL);
        if (!new_ns)
                return ERR_PTR(-ENOMEM);
-       ret = proc_alloc_inum(&new_ns->ns.inum);
+       ret = ns_alloc_inum(&new_ns->ns);
        if (ret) {
                kfree(new_ns);
                return ERR_PTR(ret);
index f284959..f5780ee 100644 (file)
@@ -71,4 +71,7 @@ static inline bool proc_ns_inode(struct inode *inode) { return false; }
 
 #endif /* CONFIG_PROC_FS */
 
+#define ns_alloc_inum(ns) proc_alloc_inum(&(ns)->inum)
+#define ns_free_inum(ns) proc_free_inum((ns)->inum)
+
 #endif /* _LINUX_PROC_NS_H */
index 531029a..bcdd7a5 100644 (file)
@@ -26,7 +26,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
        if (ns == NULL)
                return ERR_PTR(-ENOMEM);
 
-       err = proc_alloc_inum(&ns->ns.inum);
+       err = ns_alloc_inum(&ns->ns);
        if (err) {
                kfree(ns);
                return ERR_PTR(err);
@@ -35,7 +35,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
        atomic_set(&ns->count, 1);
        err = mq_init_ns(ns);
        if (err) {
-               proc_free_inum(ns->ns.inum);
+               ns_free_inum(&ns->ns);
                kfree(ns);
                return ERR_PTR(err);
        }
@@ -119,7 +119,7 @@ static void free_ipc_ns(struct ipc_namespace *ns)
         */
        ipcns_notify(IPCNS_REMOVED);
        put_user_ns(ns->user_ns);
-       proc_free_inum(ns->ns.inum);
+       ns_free_inum(&ns->ns);
        kfree(ns);
 }
 
index 79aabce..5aa9158 100644 (file)
@@ -105,7 +105,7 @@ static struct pid_namespace *create_pid_namespace(struct user_namespace *user_ns
        if (ns->pid_cachep == NULL)
                goto out_free_map;
 
-       err = proc_alloc_inum(&ns->ns.inum);
+       err = ns_alloc_inum(&ns->ns);
        if (err)
                goto out_free_map;
 
@@ -142,7 +142,7 @@ static void destroy_pid_namespace(struct pid_namespace *ns)
 {
        int i;
 
-       proc_free_inum(ns->ns.inum);
+       ns_free_inum(&ns->ns);
        for (i = 0; i < PIDMAP_ENTRIES; i++)
                kfree(ns->pidmap[i].page);
        put_user_ns(ns->user_ns);
index 29cd5cc..6bf8177 100644 (file)
@@ -86,7 +86,7 @@ int create_user_ns(struct cred *new)
        if (!ns)
                return -ENOMEM;
 
-       ret = proc_alloc_inum(&ns->ns.inum);
+       ret = ns_alloc_inum(&ns->ns);
        if (ret) {
                kmem_cache_free(user_ns_cachep, ns);
                return ret;
@@ -136,7 +136,7 @@ void free_user_ns(struct user_namespace *ns)
 #ifdef CONFIG_PERSISTENT_KEYRINGS
                key_put(ns->persistent_keyring_register);
 #endif
-               proc_free_inum(ns->ns.inum);
+               ns_free_inum(&ns->ns);
                kmem_cache_free(user_ns_cachep, ns);
                ns = parent;
        } while (atomic_dec_and_test(&parent->count));
index 20697be..c2a2b32 100644 (file)
@@ -42,7 +42,7 @@ static struct uts_namespace *clone_uts_ns(struct user_namespace *user_ns,
        if (!ns)
                return ERR_PTR(-ENOMEM);
 
-       err = proc_alloc_inum(&ns->ns.inum);
+       err = ns_alloc_inum(&ns->ns);
        if (err) {
                kfree(ns);
                return ERR_PTR(err);
@@ -84,7 +84,7 @@ void free_uts_ns(struct kref *kref)
 
        ns = container_of(kref, struct uts_namespace, kref);
        put_user_ns(ns->user_ns);
-       proc_free_inum(ns->ns.inum);
+       ns_free_inum(&ns->ns);
        kfree(ns);
 }
 
index 2161f09..da775f5 100644 (file)
@@ -386,12 +386,12 @@ EXPORT_SYMBOL_GPL(get_net_ns_by_pid);
 
 static __net_init int net_ns_net_init(struct net *net)
 {
-       return proc_alloc_inum(&net->ns.inum);
+       return ns_alloc_inum(&net->ns);
 }
 
 static __net_exit void net_ns_net_exit(struct net *net)
 {
-       proc_free_inum(net->ns.inum);
+       ns_free_inum(&net->ns);
 }
 
 static struct pernet_operations __net_initdata net_ns_ops = {