Эх сурвалжийг харах

wait_task_zombie: don't fight with non-existing race with a dying ptracee

The "p->exit_signal == -1 && p->ptrace == 0" check and the comment are
bogus.  We already did exactly the same check in eligible_child(), we did
not drop tasklist_lock since then, and both variables need
write_lock(tasklist) to be changed.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Oleg Nesterov 17 жил өмнө
parent
commit
442a10cf9e
1 өөрчлөгдсөн 0 нэмэгдсэн , 7 устгасан
  1. 0 7
      kernel/exit.c

+ 0 - 7
kernel/exit.c

@@ -1189,13 +1189,6 @@ static int wait_task_zombie(struct task_struct *p, int noreap,
 		BUG_ON(state != EXIT_DEAD);
 		BUG_ON(state != EXIT_DEAD);
 		return 0;
 		return 0;
 	}
 	}
-	if (unlikely(p->exit_signal == -1 && p->ptrace == 0)) {
-		/*
-		 * This can only happen in a race with a ptraced thread
-		 * dying on another processor.
-		 */
-		return 0;
-	}
 
 
 	/* traced means p->ptrace, but not vice versa */
 	/* traced means p->ptrace, but not vice versa */
 	traced = (p->real_parent != p->parent);
 	traced = (p->real_parent != p->parent);