X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=kernel%2Fpid.c;h=9b9a26698144e126486e162955e49561514b1ce8;hb=314a8ad0f18ac37887896b288939acd8cb17e208;hp=66505c1dfc516f3985e2072029152291cd0bedf9;hpb=155e3a353943a3e713cd33357cfd58e995900a81;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git diff --git a/kernel/pid.c b/kernel/pid.c index 66505c1..9b9a266 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -265,6 +265,7 @@ void free_pid(struct pid *pid) struct pid_namespace *ns = upid->ns; hlist_del_rcu(&upid->pid_chain); switch(--ns->nr_hashed) { + case 2: case 1: /* When all that is left in the pid namespace * is the reaper wake up the reaper. The reaper @@ -272,6 +273,11 @@ void free_pid(struct pid *pid) */ wake_up_process(ns->child_reaper); break; + case PIDNS_HASH_ADDING: + /* Handle a fork failure of the first process */ + WARN_ON(ns->child_reaper); + ns->nr_hashed = 0; + /* fall through */ case 0: schedule_work(&ns->proc_work); break;