wait_task_inactive: "improve" the returned value for ->nvcsw == 0
commit93dcf55f828b035fc93fc19eb03c1390e1e6d570
authorOleg Nesterov <oleg@tv-sign.ru>
Wed, 20 Aug 2008 23:54:44 +0000 (20 16:54 -0700)
committerIngo Molnar <mingo@elte.hu>
Fri, 22 Aug 2008 13:17:31 +0000 (22 15:17 +0200)
tree8a5b2ee5c5bb664ff856483244cec1f249a129a3
parentf31e11d87a5d7601636710195891ba462ad99f11
wait_task_inactive: "improve" the returned value for ->nvcsw == 0

wait_task_inactive() returns 1 when p->nvcsw == 0 || p->nvcsw == 1.  This
means that two subsequent calls can return the same number while the task
was scheduled in between.

Change the code to return "nvcsw | LONG_MIN" instead of "nvcsw ?: 1", now
the overlap always needs LONG_MAX schedules.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c