diff --git a/[refs] b/[refs] index 6c8488f2f77d..4469607248e2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e385ea63f44b475e034a78b6d8bc6bb50caf72ca +refs/heads/master: add0d4dfd660e9e4fd0af3eac3cad23583c9558f diff --git a/trunk/kernel/pid_namespace.c b/trunk/kernel/pid_namespace.c index ea567b78d1aa..598f1eec9826 100644 --- a/trunk/kernel/pid_namespace.c +++ b/trunk/kernel/pid_namespace.c @@ -179,9 +179,12 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns) rc = sys_wait4(-1, NULL, __WALL, NULL); } while (rc != -ECHILD); - - /* Child reaper for the pid namespace is going away */ - pid_ns->child_reaper = NULL; + /* + * We can not clear ->child_reaper or leave it alone. + * There may by stealth EXIT_DEAD tasks on ->children, + * forget_original_parent() must move them somewhere. + */ + pid_ns->child_reaper = init_pid_ns.child_reaper; acct_exit_ns(pid_ns); return; }