diff options
author | 2013-10-08 08:43:00 -0700 | |
---|---|---|
committer | 2013-10-08 08:43:00 -0700 | |
commit | e3c55d406bd8df1a878546002c93db90c42be10c (patch) | |
tree | efb0ba2707c95fd7166cf1b76887c43c977e37dd /kernel/pid.c | |
parent | Input: st1232 - include linux/of.h header (diff) | |
parent | Linux 3.12-rc4 (diff) | |
download | wireguard-linux-e3c55d406bd8df1a878546002c93db90c42be10c.tar.xz wireguard-linux-e3c55d406bd8df1a878546002c93db90c42be10c.zip |
Merge tag 'v3.12-rc4' into next
Merge with mainline to bring in changes to input subsystem that were
committed through other trees.
Diffstat (limited to 'kernel/pid.c')
-rw-r--r-- | kernel/pid.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/pid.c b/kernel/pid.c index 66505c1dfc51..9b9a26698144 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; |