linux/block
Shaohua Li 3ec717b7ca block: don't delay blk_run_queue_async
Let's check a scenario:
1. blk_delay_queue(q, SCSI_QUEUE_DELAY);
2. blk_run_queue_async();
the second one will became a noop, because q->delay_work already has
WORK_STRUCT_PENDING_BIT set, so the delayed work will still run after
SCSI_QUEUE_DELAY. But blk_run_queue_async actually hopes the delayed
work runs immediately.

Fix this by doing a cancel on potentially pending delayed work
before queuing an immediate run of the workqueue.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2011-05-18 12:24:03 +02:00
..
blk-cgroup.c blk-throttle: Use task_subsys_state() to determine a task's blkio_cgroup 2011-05-16 15:24:08 +02:00
blk-cgroup.h blk-throttle: Use task_subsys_state() to determine a task's blkio_cgroup 2011-05-16 15:24:08 +02:00
blk-core.c block: don't delay blk_run_queue_async 2011-05-18 12:24:03 +02:00
blk-exec.c block: add blk_run_queue_async 2011-04-18 11:41:33 +02:00
blk-flush.c block: add blk_run_queue_async 2011-04-18 11:41:33 +02:00
blk-integrity.c dm: improve block integrity support 2011-04-05 23:52:43 +02:00
blk-ioc.c
blk-iopoll.c
blk-lib.c Merge branch 'for-2.6.39/core' of git://git.kernel.dk/linux-2.6-block 2011-03-24 10:16:26 -07:00
blk-map.c
blk-merge.c block: attempt to merge with existing requests on plug flush 2011-03-21 10:14:27 +01:00
blk-settings.c Revert "block: add callback function for unplug notification" 2011-04-18 09:54:05 +02:00
blk-softirq.c
blk-sysfs.c block: Remove the extra check in queue_requests_store 2011-04-19 13:51:53 +02:00
blk-tag.c
blk-throttle.c blk-throttle: Use task_subsys_state() to determine a task's blkio_cgroup 2011-05-16 15:24:08 +02:00
blk-timeout.c
blk.h block: get rid of QUEUE_FLAG_REENTER 2011-04-19 13:32:46 +02:00
bsg.c
cfq-iosched.c blk-throttle: Use task_subsys_state() to determine a task's blkio_cgroup 2011-05-16 15:24:08 +02:00
cfq.h blk-cgroup: Add unaccounted time to timeslice_used. 2011-03-12 16:54:00 +01:00
compat_ioctl.c
deadline-iosched.c block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
elevator.c elevator: check for ELEVATOR_INSERT_SORT_MERGE in !elvpriv case too 2011-04-21 19:28:35 +02:00
genhd.c block: don't propagate unlisted DISK_EVENTs to userland 2011-04-21 19:43:58 +02:00
ioctl.c
Kconfig
Kconfig.iosched
Makefile
noop-iosched.c block: remove per-queue plugging 2011-03-10 08:52:07 +01:00
scsi_ioctl.c