summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2012-08-03 19:30:47 +0200
committerTejun Heo <tj@kernel.org>2012-08-03 19:30:47 +0200
commit8376fe22c7e79c7e90857d39f82aeae6cad6c4b8 (patch)
tree3a77fda11324a25abfe1ffe3ea0eba28a4fac03f /block
parentworkqueue: mark a work item being canceled as such (diff)
downloadlinux-8376fe22c7e79c7e90857d39f82aeae6cad6c4b8.tar.xz
linux-8376fe22c7e79c7e90857d39f82aeae6cad6c4b8.zip
workqueue: implement mod_delayed_work[_on]()
Workqueue was lacking a mechanism to modify the timeout of an already pending delayed_work. delayed_work users have been working around this using several methods - using an explicit timer + work item, messing directly with delayed_work->timer, and canceling before re-queueing, all of which are error-prone and/or ugly. This patch implements mod_delayed_work[_on]() which behaves similarly to mod_timer() - if the delayed_work is idle, it's queued with the given delay; otherwise, its timeout is modified to the new value. Zero @delay guarantees immediate execution. v2: Updated to reflect try_to_grab_pending() changes. Now safe to be called from bh context. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Ingo Molnar <mingo@redhat.com>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions