From: Oleg Nesterov de_thread() checks if the old leader was the ->child_reaper, this is not possible any longer. With the previous patch ->group_leader itself will change ->child_reaper on exit. Henceforth find_new_reaper() is the only function (apart from initialization) which plays with ->child_reaper. Signed-off-by: Oleg Nesterov Acked-by: Serge Hallyn Acked-by: Pavel Emelyanov Acked-by: Sukadev Bhattiprolu Signed-off-by: Andrew Morton --- fs/exec.c | 2 -- 1 file changed, 2 deletions(-) diff -puN fs/exec.c~pid_ns-de_thread-kill-the-now-unneeded-child_reaper-change fs/exec.c --- a/fs/exec.c~pid_ns-de_thread-kill-the-now-unneeded-child_reaper-change +++ a/fs/exec.c @@ -822,8 +822,6 @@ static int de_thread(struct task_struct schedule(); } - if (unlikely(task_child_reaper(tsk) == leader)) - task_active_pid_ns(tsk)->child_reaper = tsk; /* * The only record we have of the real-time age of a * process, regardless of execs it's done, is start_time. _