From: Oleg Nesterov Date: Fri, 8 Feb 2008 12:19:03 +0000 (-0800) Subject: wait_task_stopped(): remove unneeded delay_group_leader check X-Git-Tag: v2.6.25-rc1~226 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bad95c3bee183719e15eebffef66afc3fb3f8b0;p=linux-2.6 wait_task_stopped(): remove unneeded delay_group_leader check wait_task_stopped() doesn't need the "delay_group_leader" parameter. If the child is not traced it must be a group leader. With or without subthreads ->group_stop_count == 0 when the whole task is stopped. Signed-off-by: Oleg Nesterov Cc: Mika Penttila Acked-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/exit.c b/kernel/exit.c index 723a69b69f..190a4cdcdb 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -1351,7 +1351,7 @@ static int wait_task_zombie(struct task_struct *p, int noreap, * the lock and this task is uninteresting. If we return nonzero, we have * released the lock and the system call should return. */ -static int wait_task_stopped(struct task_struct *p, int delayed_group_leader, +static int wait_task_stopped(struct task_struct *p, int noreap, struct siginfo __user *infop, int __user *stat_addr, struct rusage __user *ru) { @@ -1365,8 +1365,7 @@ static int wait_task_stopped(struct task_struct *p, int delayed_group_leader, if (unlikely(!task_is_stopped_or_traced(p))) goto unlock_sig; - if (delayed_group_leader && !(p->ptrace & PT_PTRACED) && - p->signal->group_stop_count > 0) + if (!(p->ptrace & PT_PTRACED) && p->signal->group_stop_count > 0) /* * A group stop is in progress and this is the group leader. * We won't report until all threads have stopped. @@ -1522,7 +1521,7 @@ repeat: !(options & WUNTRACED)) continue; - retval = wait_task_stopped(p, ret == 2, + retval = wait_task_stopped(p, (options & WNOWAIT), infop, stat_addr, ru); } else if (p->exit_state == EXIT_ZOMBIE) {