softlockup: minor cleanup, don't check task->state twice

The recent commit 16d9679f33caf7e683471647d1472bfe133d858 changed
check_hung_task() to filter out the TASK_KILLABLE tasks. We can
move this check to the caller which has to test t->state anyway.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Oleg Nesterov 2008-08-30 21:08:40 +04:00 committed by Linus Torvalds
parent 6781f4ae30
commit cbaed698f3

View File

@ -180,10 +180,6 @@ static void check_hung_task(struct task_struct *t, unsigned long now)
if (t->flags & PF_FROZEN) if (t->flags & PF_FROZEN)
return; return;
/* Don't check for tasks waiting on network file systems like NFS */
if (t->state & TASK_KILLABLE)
return;
if (switch_count != t->last_switch_count || !t->last_switch_timestamp) { if (switch_count != t->last_switch_count || !t->last_switch_timestamp) {
t->last_switch_count = switch_count; t->last_switch_count = switch_count;
t->last_switch_timestamp = now; t->last_switch_timestamp = now;
@ -237,7 +233,8 @@ static void check_hung_uninterruptible_tasks(int this_cpu)
do_each_thread(g, t) { do_each_thread(g, t) {
if (!--max_count) if (!--max_count)
goto unlock; goto unlock;
if (t->state & TASK_UNINTERRUPTIBLE) /* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */
if (t->state == TASK_UNINTERRUPTIBLE)
check_hung_task(t, now); check_hung_task(t, now);
} while_each_thread(g, t); } while_each_thread(g, t);
unlock: unlock: