has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/
authorOleg Nesterov <oleg@redhat.com>
Thu, 7 Jul 2011 19:33:54 +0000 (21:33 +0200)
committerOleg Nesterov <oleg@redhat.com>
Sun, 17 Jul 2011 18:23:50 +0000 (20:23 +0200)
commit961c4675c75112717705fa5c0c53cb9664051479
treed424199346b5dc1c5d27fe920a66a6ea11989d89
parentbb188d7e64deb0e9cf13a99f44ae0065de5352d6
has_stopped_jobs: s/task_is_stopped/SIGNAL_STOP_STOPPED/

has_stopped_jobs() naively checks task_is_stopped(group_leader). This
was always wrong even without ptrace, group_leader can be dead. And
given that ptrace can change the state to TRACED this is wrong even
in the single-threaded case.

Change the code to check SIGNAL_STOP_STOPPED and simplify the code,
retval + break/continue doesn't make this trivial code more readable.

We could probably add the usual "|| signal->group_stop_count" check
but I don't think this makes sense, the task can start the group-stop
right after the check anyway.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
kernel/exit.c