linux-xiaomi-chiron/drivers/block
Ming Lei cebbe577cb ublk_drv: fix request queue leak
Call blk_cleanup_queue() in release code path for fixing request
queue leak.

Also for-5.20/block has cleaned up blk_cleanup_queue(), which is
basically merged to del_gendisk() if blk_mq_alloc_disk() is used
for allocating disk and queue.

However, ublk may not add disk in case of starting device failure, then
del_gendisk() won't be called when removing ublk device, so blk_mq_exit_queue
will not be callsed, and it can be bit hard to deal with this kind of
merge conflict.

Turns out ublk's queue/disk use model is very similar with scsi, so switch
to scsi's model by allocating disk and queue independently, then it can be
quite easy to handle v5.20 merge conflict by replacing blk_cleanup_queue
with blk_mq_destroy_queue.

Reported-by: Jens Axboe <axboe@kernel.dk>
Fixes: 71f28f3136 ("ublk_drv: add io_uring based userspace block driver")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20220714103201.131648-1-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-07-14 07:16:04 -06:00
..
aoe block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
drbd block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
mtip32xx blk-mq: Drop 'reserved' arg of busy_tag_iter_fn 2022-07-06 06:33:53 -06:00
null_blk block: move zone related fields to struct gendisk 2022-07-06 06:46:26 -06:00
paride block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
rnbd block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
xen-blkback xen-blkback: use bdev_discard_alignment 2022-05-04 05:24:40 -06:00
zram block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
amiflop.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
ataflop.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
brd.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
floppy.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
Kconfig ublk_drv: add io_uring based userspace block driver 2022-07-14 07:15:28 -06:00
loop.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
Makefile ublk_drv: add io_uring based userspace block driver 2022-07-14 07:15:28 -06:00
n64cart.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
nbd.c blk-mq: Drop 'reserved' arg of busy_tag_iter_fn 2022-07-06 06:33:53 -06:00
pktcdvd.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
ps3disk.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
ps3vram.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
rbd.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
rbd_types.h libceph, rbd: replace zero-length array with flexible-array 2020-06-01 13:22:53 +02:00
sunvdc.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
swim.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
swim3.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
swim_asm.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
sx8.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
ublk_drv.c ublk_drv: fix request queue leak 2022-07-14 07:16:04 -06:00
virtio_blk.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
xen-blkfront.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00
z2ram.c block: remove blk_cleanup_disk 2022-06-28 06:33:15 -06:00