Muthukumar Ratty
e81ca6fe85
[SCSI] block: Fix blk_execute_rq_nowait() dead queue handling
...
If the queue is dead blk_execute_rq_nowait() doesn't invoke the done()
callback function. That will result in blk_execute_rq() being stuck
in wait_for_completion(). Avoid this by initializing rq->end_io to the
done() callback before we check the queue state. Also, make sure the
queue lock is held around the invocation of the done() callback. Found
this through source code review.
Signed-off-by: Muthukumar Ratty <muthur@gmail.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Tejun Heo <tj@kernel.org>
Acked-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-07-20 08:58:39 +01:00
..
partitions
s390/dasd: re-prioritize partition detection message
2012-05-16 14:42:51 +02:00
blk-cgroup.c
blkcg: drop local variable @q from blkg_destroy()
2012-06-06 08:35:31 +02:00
blk-cgroup.h
blkcg: use radix tree to index blkgs from blkcg
2012-04-20 10:06:40 +02:00
blk-core.c
block: Mitigate lock unbalance caused by lock switching
2012-06-15 08:46:22 +02:00
blk-exec.c
[SCSI] block: Fix blk_execute_rq_nowait() dead queue handling
2012-07-20 08:58:39 +01:00
blk-flush.c
blk-flush: move the queue kick into
2011-10-24 16:24:31 +02:00
blk-integrity.c
block: add export.h to files using EXPORT_SYMBOL/THIS_MODULE macros
2011-10-31 19:31:12 -04:00
blk-ioc.c
block: avoid infinite loop in get_task_io_context()
2012-05-31 13:39:05 +02:00
blk-iopoll.c
blk-lib.c
blk-map.c
block: re-use existing 'reading' variable instead of checking direction again
2011-12-21 15:27:24 +01:00
blk-merge.c
block: separate out blk_rq_merge_ok() and blk_try_merge() from elevator functions
2012-02-08 09:19:38 +01:00
blk-settings.c
block: Introduce blk_set_stacking_limits function
2012-01-11 16:27:11 +01:00
blk-softirq.c
sched, block: Unify cache detection
2012-01-27 13:28:48 +01:00
blk-sysfs.c
blkcg: unify blkg's for blkcg policies
2012-03-06 21:27:23 +01:00
blk-tag.c
block: fix blk_queue_end_tag()
2011-12-29 09:16:28 +01:00
blk-throttle.c
blkcg: tg_stats_alloc_lock is an irq lock
2012-05-23 12:16:21 +02:00
blk-timeout.c
block: Drop dead function blk_abort_queue()
2012-06-15 08:46:23 +02:00
blk.h
Merge branch 'for-3.5' of ../cgroup into block/for-3.5/core-merged
2012-04-01 12:55:00 -07:00
bsg-lib.c
block: Change module.h -> export.h in bsg-lib.c
2011-10-31 19:31:13 -04:00
bsg.c
bsg: fix sysfs link remove warning
2012-02-08 20:02:03 +01:00
cfq-iosched.c
block: blkcg_policy_cfq shouldn't be used if !CONFIG_CFQ_GROUP_IOSCHED
2012-06-04 10:02:29 +02:00
compat_ioctl.c
block: Add BLKROTATIONAL ioctl
2012-01-11 16:29:31 +01:00
deadline-iosched.c
elevator: make elevator_init_fn() return 0/-errno
2012-03-06 21:27:21 +01:00
elevator.c
blkcg: implement per-queue policy activation
2012-04-20 10:06:06 +02:00
genhd.c
block: fix buffer overflow when printing partition UUIDs
2012-05-15 08:22:04 +02:00
ioctl.c
Merge branch 'for-3.3/core' of git://git.kernel.dk/linux-block
2012-01-15 12:24:45 -08:00
Kconfig
move fs/partitions to block/
2012-01-03 22:54:06 -05:00
Kconfig.iosched
blkcg: make CONFIG_BLK_CGROUP bool
2012-03-06 21:27:21 +01:00
Makefile
separate partition format handling from generic code
2012-01-03 22:54:06 -05:00
noop-iosched.c
elevator: make elevator_init_fn() return 0/-errno
2012-03-06 21:27:21 +01:00
partition-generic.c
block: Fix NULL pointer dereference in sd_revalidate_disk
2012-03-02 10:38:33 +01:00
scsi_ioctl.c
scsi: Silence unnecessary warnings about ioctl to partition
2012-06-15 12:52:46 +02:00