workqueue: fix worker management invocation without pending works
authorTejun Heo <tj@kernel.org>
Fri, 2 Jul 2010 08:03:51 +0000 (10:03 +0200)
committerTejun Heo <tj@kernel.org>
Fri, 2 Jul 2010 08:03:51 +0000 (10:03 +0200)
commitd313dd85ad846bc768d58e9ceb28588f917f4c9a
treeb61b92f270b9fedc577e8196d605c93d695052d4
parenta1e453d2799760ecf2e09ecd45b80edbe7ff540e
workqueue: fix worker management invocation without pending works

When there's no pending work to do, worker_thread() goes back to sleep
after waking up without checking whether worker management is
necessary.  This means that idle worker exit requests can be ignored
if the gcwq stays empty.

Fix it by making worker_thread() always check whether worker
management is necessary before going to sleep.

Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c