utsns: extract creeate_uts_ns()
authorAlexey Dobriyan <adobriyan@gmail.com>
Wed, 17 Jun 2009 23:27:54 +0000 (16:27 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 18 Jun 2009 20:03:55 +0000 (13:03 -0700)
create_uts_ns() will be used by C/R to create fresh uts_ns.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/utsname.c

index 815237a55af8f277b43aea2c81471b9c05a4d00d..8a82b4b8ea52cb3690e25bf039eaf32ff5c8c079 100644 (file)
 #include <linux/err.h>
 #include <linux/slab.h>
 
+static struct uts_namespace *create_uts_ns(void)
+{
+       struct uts_namespace *uts_ns;
+
+       uts_ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL);
+       if (uts_ns)
+               kref_init(&uts_ns->kref);
+       return uts_ns;
+}
+
 /*
  * Clone a new ns copying an original utsname, setting refcount to 1
  * @old_ns: namespace to clone
@@ -24,14 +34,13 @@ static struct uts_namespace *clone_uts_ns(struct uts_namespace *old_ns)
 {
        struct uts_namespace *ns;
 
-       ns = kmalloc(sizeof(struct uts_namespace), GFP_KERNEL);
+       ns = create_uts_ns();
        if (!ns)
                return ERR_PTR(-ENOMEM);
 
        down_read(&uts_sem);
        memcpy(&ns->name, &old_ns->name, sizeof(ns->name));
        up_read(&uts_sem);
-       kref_init(&ns->kref);
        return ns;
 }