Messages in this thread | | | Date | Wed, 27 Aug 2008 11:04:30 -0700 | From | sukadev@us ... | Subject | Re: [PATCH 2/4] pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits |
| |
Oleg Nesterov [oleg@tv-sign.ru] wrote: | We don't change pid_ns->child_reaper when the main thread of the | subnamespace init exits. As Robert Rex <robert.rex@exasol.com> | pointed out this is wrong. | | Yes, the re-parenting itself works correctly, but if the reparented | task exits it needs ->parent->nsproxy->pid_ns in do_notify_parent(), | and if the main thread is zombie its ->nsproxy was already cleared | by exit_task_namespaces(). | | Introduce the new function, find_new_reaper(), which finds the new | ->parent for the re-parenting and changes ->child_reaper if needed. | Kill the now unneeded exit_child_reaper(). | | Also move the changing of ->child_reaper from zap_pid_ns_processes() | to find_new_reaper(), this consolidates the games with ->child_reaper | and makes it stable under tasklist_lock. | | Reported-by: Robert Rex <robert.rex@exasol.com> | Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
| |