This patch shouldn't be applied if those branches must only be taken when the pid_allocation(PIDNS_HASH_ADDING) flag was turned off. Otherwise, we must turn the PIDNS_HASH_ADDING flag (1U << 31) off before getting into the switch-cases.
Signed-off-by: Raphael S. Carvalho <raphael.sc...@gmail.com> --- kernel/pid.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/kernel/pid.c b/kernel/pid.c index 0db3e79..6bda527 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -263,7 +263,10 @@ void free_pid(struct pid *pid) struct upid *upid = pid->numbers + i; struct pid_namespace *ns = upid->ns; hlist_del_rcu(&upid->pid_chain); - switch(--ns->nr_hashed) { + + /* We must turn the PIDNS_HASH_ADDING flag off to + get the actual value of nr_hashed */ + switch ((--ns->nr_hashed) & ~(PIDNS_HASH_ADDING)) { case 1: /* When all that is left in the pid namespace * is the reaper wake up the reaper. The reaper -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/