workqueue: implement WQ_NON_REENTRANT
authorTejun Heo <tj@kernel.org>
Tue, 29 Jun 2010 08:07:13 +0000 (10:07 +0200)
committerTejun Heo <tj@kernel.org>
Tue, 29 Jun 2010 08:07:13 +0000 (10:07 +0200)
commit18aa9effad4adb2c1efe123af4eb24fec9f59b30
tree76975b37ae0ef1ebf460aaab68359ed7a12fe37a
parent7a22ad757ec75186ad43a5b4670fa7423ee8f480
workqueue: implement WQ_NON_REENTRANT

With gcwq managing all the workers and work->data pointing to the last
gcwq it was on, non-reentrance can be easily implemented by checking
whether the work is still running on the previous gcwq on queueing.
Implement it.

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