pidns: Wait in zap_pid_ns_processes until pid_ns->nr_hashed == 1
Looking at pid_ns->nr_hashed is a bit simpler and it works for disjoint process trees that an unshare or a join of a pid_namespace may create. Acked-by: "Serge E. Hallyn" <serge@hallyn.com> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
parent
5e1182deb8
commit
af4b8a83ad
3 changed files with 17 additions and 26 deletions
|
|
@ -72,18 +72,6 @@ static void __unhash_process(struct task_struct *p, bool group_dead)
|
|||
list_del_rcu(&p->tasks);
|
||||
list_del_init(&p->sibling);
|
||||
__this_cpu_dec(process_counts);
|
||||
/*
|
||||
* If we are the last child process in a pid namespace to be
|
||||
* reaped, notify the reaper sleeping zap_pid_ns_processes().
|
||||
*/
|
||||
if (IS_ENABLED(CONFIG_PID_NS)) {
|
||||
struct task_struct *parent = p->real_parent;
|
||||
|
||||
if ((task_active_pid_ns(parent)->child_reaper == parent) &&
|
||||
list_empty(&parent->children) &&
|
||||
(parent->flags & PF_EXITING))
|
||||
wake_up_process(parent);
|
||||
}
|
||||
}
|
||||
list_del_rcu(&p->thread_group);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue