linux/drivers/block
Christoph Hellwig 05d69d950d xen-blkfront: sanitize the removal state machine
xen-blkfront has a weird protocol where close message from the remote
side can be delayed, and where hot removals are treated somewhat
differently from regular removals, all leading to potential NULL
pointer removals, and a del_gendisk from the block device release
method, which will deadlock. Fix this by just performing normal hot
removals even when the device is opened like all other Linux block
drivers.

Fixes: c76f48eb5c ("block: take bd_mutex around delete_partitions in del_gendisk")
Reported-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20210715141711.1257293-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-07-15 09:32:34 -06:00
..
aoe for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
drbd for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
mtip32xx mtip32xx: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-30 15:34:04 -06:00
null_blk null_blk: remove an unused variable assignment in null_add_dev 2021-06-30 15:34:04 -06:00
paride pd: fix order of cleaning up the queue and freeing the tagset 2021-07-15 09:29:22 -06:00
rnbd rnbd: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:42 -06:00
rsxx for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
xen-blkback xen-blkback: fix compatibility bug with single page rings 2021-04-23 09:34:07 +02:00
zram block: move bd_mutex to struct gendisk 2021-06-01 07:44:32 -06:00
amiflop.c amiflop: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:43 -06:00
ataflop.c ataflop: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:43 -06:00
brd.c brd: convert to blk_alloc_disk/blk_cleanup_disk 2021-06-01 07:42:23 -06:00
cryptoloop.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 30 2019-05-24 17:27:10 +02:00
floppy.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
Kconfig swim: don't call blk_queue_bounce_limit 2021-04-06 09:29:47 -06:00
loop.c loop: remove unused variable in loop_set_status() 2021-07-02 09:28:42 -06:00
loop.h loop: charge i/o to mem and blk cg 2021-06-29 10:53:50 -07:00
Makefile drivers/block: remove the umem driver 2021-03-24 06:57:40 -06:00
n64cart.c n64cart: convert to blk_alloc_disk 2021-06-01 07:42:24 -06:00
nbd.c nbd: fix order of cleaning up the queue and freeing the tagset 2021-07-15 09:30:15 -06:00
pktcdvd.c block: remove REQ_OP_SCSI_{IN,OUT} 2021-06-30 15:34:19 -06:00
ps3disk.c ps3disk: use blk_mq_alloc_disk 2021-06-11 11:53:02 -06:00
ps3vram.c ps3vram: convert to blk_alloc_disk/blk_cleanup_disk 2021-06-01 07:42:24 -06:00
rbd_types.h libceph, rbd: replace zero-length array with flexible-array 2020-06-01 13:22:53 +02:00
rbd.c rbd: use blk_mq_alloc_disk and blk_cleanup_disk 2021-06-11 11:54:42 -06:00
sunvdc.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
swim3.c swim3: use blk_mq_alloc_disk 2021-06-11 11:53:02 -06:00
swim_asm.S treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
swim.c swim: use blk_mq_alloc_disk 2021-06-11 11:53:03 -06:00
sx8.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
virtio_blk.c virtio-blk: use blk_mq_alloc_disk 2021-06-11 11:53:02 -06:00
xen-blkfront.c xen-blkfront: sanitize the removal state machine 2021-07-15 09:32:34 -06:00
z2ram.c for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00