linux-stable/drivers/block
Ming Lei 518d00b749 block: null_blk: fix queue leak inside removing device
When queue_mode is NULL_Q_MQ and null_blk is being removed,
blk_cleanup_queue() isn't called to cleanup queue, so the queue
allocated won't be freed.

This patch calls blk_cleanup_queue() for MQ to drain all pending
requests first and release the reference counter of queue kobject, then
blk_mq_free_queue() will be called in queue kobject's release handler
when queue kobject's reference counter drops to zero.

Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-01-12 16:22:42 +07:00
..
aoe aoe: do not BUG if memory pressure prevented debugfs file creation 2013-09-11 15:59:28 -07:00
drbd drbd: avoid to shrink max_bio_size due to peer re-configuration 2013-11-08 09:10:29 -07:00
mtip32xx mtip32xx: dynamically allocate buffer in debugfs functions 2013-11-08 09:10:28 -07:00
paride block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
rsxx rsxx: Fix possible kernel panic with invalid config. 2013-11-08 09:10:29 -07:00
xen-blkback xen/blkback: fix reference counting 2013-11-08 09:10:27 -07:00
amiflop.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
ataflop.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
brd.c block: fix a probe argument to blk_register_region 2013-11-08 08:59:39 -07:00
cciss.c tree-wide: use reinit_completion instead of INIT_COMPLETION 2013-11-15 09:32:21 +09:00
cciss.h
cciss_cmd.h
cciss_scsi.c
cciss_scsi.h
cpqarray.c cpqarray: fix info leak in ida_locked_ioctl() 2013-09-24 17:00:26 -07:00
cpqarray.h
cryptoloop.c move linux/loop.h to drivers/block 2013-06-29 12:46:45 +04:00
DAC960.c
DAC960.h
floppy.c block: make rq->cmd_flags be 64-bit 2013-10-25 11:55:59 +01:00
hd.c
ida_cmd.h
ida_ioctl.h
Kconfig Merge branch 'for-3.13/post-mq-drivers' into for-linus 2013-11-14 08:29:01 -07:00
loop.c loop: fix crash when using unassigned loop device 2013-11-08 09:10:28 -07:00
loop.h move linux/loop.h to drivers/block 2013-06-29 12:46:45 +04:00
Makefile Merge branch 'for-3.13/post-mq-drivers' into for-linus 2013-11-14 08:29:01 -07:00
mg_disk.c mg_disk: remove deprecated IRQF_DISABLED 2013-11-08 09:10:27 -07:00
nbd.c nbd: correct disconnect behavior 2013-07-03 16:08:05 -07:00
null_blk.c block: null_blk: fix queue leak inside removing device 2014-01-12 16:22:42 +07:00
nvme-core.c DMA-API: block: nvme-core: replace dma_set_mask()+dma_set_coherent_mask() with new helper 2013-09-21 21:02:24 +01:00
nvme-scsi.c NVMe: Use kzalloc instead of kmalloc+memset 2013-06-19 13:24:27 -04:00
osdblk.c block: replace strict_strtoul() with kstrtoul() 2013-09-11 15:56:56 -07:00
pktcdvd.c pktcdvd: debugfs functions return NULL on error 2013-11-08 09:10:31 -07:00
ps3disk.c
ps3vram.c
rbd.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-09-19 12:50:37 -05:00
rbd_types.h
skd_main.c drivers: block: Mark the functions as static in skd_main.c 2013-12-19 08:06:49 -07:00
skd_s1120.h skd: fix formatting in skd_s1120.h 2013-11-08 09:10:30 -07:00
smart1,2.h
sunvdc.c
swim.c drivers/block/swim.c: remove unnecessary platform_set_drvdata() 2013-09-11 15:56:59 -07:00
swim3.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00
swim_asm.S
sx8.c
umem.c
umem.h
virtio_blk.c virtio-blk: virtqueue_kick() must be ordered with other virtqueue operations 2013-11-19 19:00:45 -07:00
xen-blkfront.c block: xen-blkfront: Fix possible NULL ptr dereference 2013-11-26 11:24:01 -05:00
xsysace.c xilinx systemace: Fix sparse warnings 2013-07-10 07:47:12 +02:00
z2ram.c block_device_operations->release() should return void 2013-05-07 02:16:21 -04:00