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 --- |