do CPU_DEAD migrating under read_lock(tasklist) instead of write_lock_irq(tasklist)
[pandora-kernel.git] / kernel / user_namespace.c
index 89a27e8..7af90fc 100644 (file)
@@ -34,18 +34,18 @@ static struct user_namespace *clone_user_ns(struct user_namespace *old_ns)
 
        ns = kmalloc(sizeof(struct user_namespace), GFP_KERNEL);
        if (!ns)
-               return NULL;
+               return ERR_PTR(-ENOMEM);
 
        kref_init(&ns->kref);
 
        for (n = 0; n < UIDHASH_SZ; ++n)
-               INIT_LIST_HEAD(ns->uidhash_table + n);
+               INIT_HLIST_HEAD(ns->uidhash_table + n);
 
        /* Insert new root user.  */
        ns->root_user = alloc_uid(ns, 0);
        if (!ns->root_user) {
                kfree(ns);
-               return NULL;
+               return ERR_PTR(-ENOMEM);
        }
 
        /* Reset current->user with a new one */
@@ -53,7 +53,7 @@ static struct user_namespace *clone_user_ns(struct user_namespace *old_ns)
        if (!new_user) {
                free_uid(ns->root_user);
                kfree(ns);
-               return NULL;
+               return ERR_PTR(-ENOMEM);
        }
 
        switch_uid(new_user);
@@ -81,6 +81,7 @@ void free_user_ns(struct kref *kref)
        struct user_namespace *ns;
 
        ns = container_of(kref, struct user_namespace, kref);
+       release_uids(ns);
        kfree(ns);
 }