summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2008-02-08 04:19:07 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-08 09:22:27 -0800
commitc543f1ee08ea6c2176dbdc47df0d0f6357c88713 (patch)
treeae2d4de96aabbafd3792316d14f40330ec64572d /kernel
parent3a515e4a62dbf7e4c213740268a5267faa69e5b2 (diff)
downloadlinux-stable-c543f1ee08ea6c2176dbdc47df0d0f6357c88713.tar.gz
linux-stable-c543f1ee08ea6c2176dbdc47df0d0f6357c88713.tar.bz2
linux-stable-c543f1ee08ea6c2176dbdc47df0d0f6357c88713.zip
wait_task_zombie: remove ->exit_state/exit_signal checks for WNOWAIT
The first "p->exit_state != EXIT_ZOMBIE" check doesn't make too much sense. The exit_state was EXIT_ZOMBIE when the function was called, and another thread can change it to EXIT_DEAD right after the check. The second condition is not possible, detached non-traced threads were already filtered out by eligible_child(), we didn't drop tasklist since then. 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>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exit.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index dee8b4d63403..42a8713b2050 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -1196,10 +1196,6 @@ static int wait_task_zombie(struct task_struct *p, int noreap,
int exit_code = p->exit_code;
int why, status;
- if (unlikely(p->exit_state != EXIT_ZOMBIE))
- return 0;
- if (unlikely(p->exit_signal == -1 && p->ptrace == 0))
- return 0;
get_task_struct(p);
read_unlock(&tasklist_lock);
if ((exit_code & 0x7f) == 0) {