diff options
author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2013-02-06 18:04:53 -0800 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-02-06 18:04:53 -0800 |
commit | 038366c5cf23ae737b9f72169dd8ade2d105755b (patch) | |
tree | 7119031b23ba32e02b3fc8621cc8666b41f95f8a /include/linux/workqueue.h | |
parent | 6be195886ac26abe0194ed1bc7a9224f8a97c310 (diff) |
workqueue: make work_busy() test WORK_STRUCT_PENDING first
Currently, work_busy() first tests whether the work has a pool
associated with it and if not, considers it idle. This works fine
even for delayed_work.work queued on timer, as __queue_delayed_work()
sets cwq on delayed_work.work - a queued delayed_work always has its
cwq and thus pool associated with it.
However, we're about to update delayed_work queueing and this won't
hold. Update work_busy() such that it tests WORK_STRUCT_PENDING
before the associated pool. This doesn't make any noticeable behavior
difference now.
With work_pending() test moved, the function read a lot better with
"if (!pool)" test flipped to positive. Flip it.
While at it, lose the comment about now non-existent reentrant
workqueues.
tj: Reorganized the function and rewrote the description.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/workqueue.h')
0 files changed, 0 insertions, 0 deletions