]> git.karo-electronics.de Git - linux-beck.git/blobdiff - kernel/fork.c
fork: report pid reservation failure properly
[linux-beck.git] / kernel / fork.c
index f2c1e7352298b6a1f67639dc9db7b363896a4597..d778016ac1e35a374988bb8a8663499bb310e26b 100644 (file)
@@ -1403,10 +1403,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
                goto bad_fork_cleanup_io;
 
        if (pid != &init_struct_pid) {
-               retval = -ENOMEM;
                pid = alloc_pid(p->nsproxy->pid_ns_for_children);
-               if (!pid)
+               if (IS_ERR(pid)) {
+                       retval = PTR_ERR(pid);
                        goto bad_fork_cleanup_io;
+               }
        }
 
        p->set_child_tid = (clone_flags & CLONE_CHILD_SETTID) ? child_tidptr : NULL;