pid_namespace.c (bf5f89463f5b3109a72ed13ca62b57e90213387d) pid_namespace.c (b9a985db98961ae1ba0be169f19df1c567e4ffe0)
1/*
2 * Pid namespaces
3 *
4 * Authors:
5 * (C) 2007 Pavel Emelyanov <xemul@openvz.org>, OpenVZ, SWsoft Inc.
6 * (C) 2007 Sukadev Bhattiprolu <sukadev@us.ibm.com>, IBM
7 * Many thanks to Oleg Nesterov for comments and help
8 *

--- 263 unchanged lines hidden (view full) ---

272 * to wait until they are all reaped, but they can be reparented to
273 * us and thus we need to ensure that pid->child_reaper stays valid
274 * until they all go away. See free_pid()->wake_up_process().
275 *
276 * We rely on ignored SIGCHLD, an injected zombie must be autoreaped
277 * if reparented.
278 */
279 for (;;) {
1/*
2 * Pid namespaces
3 *
4 * Authors:
5 * (C) 2007 Pavel Emelyanov <xemul@openvz.org>, OpenVZ, SWsoft Inc.
6 * (C) 2007 Sukadev Bhattiprolu <sukadev@us.ibm.com>, IBM
7 * Many thanks to Oleg Nesterov for comments and help
8 *

--- 263 unchanged lines hidden (view full) ---

272 * to wait until they are all reaped, but they can be reparented to
273 * us and thus we need to ensure that pid->child_reaper stays valid
274 * until they all go away. See free_pid()->wake_up_process().
275 *
276 * We rely on ignored SIGCHLD, an injected zombie must be autoreaped
277 * if reparented.
278 */
279 for (;;) {
280 set_current_state(TASK_UNINTERRUPTIBLE);
280 set_current_state(TASK_INTERRUPTIBLE);
281 if (pid_ns->nr_hashed == init_pids)
282 break;
283 schedule();
284 }
285 __set_current_state(TASK_RUNNING);
286
287 if (pid_ns->reboot)
288 current->signal->group_exit_code = pid_ns->reboot;

--- 202 unchanged lines hidden ---
281 if (pid_ns->nr_hashed == init_pids)
282 break;
283 schedule();
284 }
285 __set_current_state(TASK_RUNNING);
286
287 if (pid_ns->reboot)
288 current->signal->group_exit_code = pid_ns->reboot;

--- 202 unchanged lines hidden ---