|
@@ -189,7 +189,6 @@ repeat:
|
|
|
zap_leader = 0;
|
|
|
leader = p->group_leader;
|
|
|
if (leader != p && thread_group_empty(leader) && leader->exit_state == EXIT_ZOMBIE) {
|
|
|
- BUG_ON(task_detached(leader));
|
|
|
/*
|
|
|
* If we were the last child thread and the leader has
|
|
|
* exited already, and the leader's parent ignores SIGCHLD,
|
|
@@ -1231,9 +1230,9 @@ static int wait_task_zombie(struct wait_opts *wo, struct task_struct *p)
|
|
|
traced = ptrace_reparented(p);
|
|
|
/*
|
|
|
* It can be ptraced but not reparented, check
|
|
|
- * !task_detached() to filter out sub-threads.
|
|
|
+ * thread_group_leader() to filter out sub-threads.
|
|
|
*/
|
|
|
- if (likely(!traced) && likely(!task_detached(p))) {
|
|
|
+ if (likely(!traced) && thread_group_leader(p)) {
|
|
|
struct signal_struct *psig;
|
|
|
struct signal_struct *sig;
|
|
|
unsigned long maxrss;
|