block: fix surprise removal for drivers calling blk_set_queue_dying
authorChristoph Hellwig <hch@lst.de>
Thu, 17 Feb 2022 07:52:31 +0000 (08:52 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Feb 2022 11:03:15 +0000 (12:03 +0100)
commite65450a12cf4f3773b2607e305807f917e0bf239
tree6c6ec616f719018de45d30e4897d10396905682f
parente1dce8e127fdaa9039505a52b08b93863caac2a2
block: fix surprise removal for drivers calling blk_set_queue_dying

commit 7a5428dcb7902700b830e912feee4e845df7c019 upstream.

Various block drivers call blk_set_queue_dying to mark a disk as dead due
to surprise removal events, but since commit 8e141f9eb803 that doesn't
work given that the GD_DEAD flag needs to be set to stop I/O.

Replace the driver calls to blk_set_queue_dying with a new (and properly
documented) blk_mark_disk_dead API, and fold blk_set_queue_dying into the
only remaining caller.

Fixes: 8e141f9eb803 ("block: drain file system I/O on del_gendisk")
Reported-by: Markus Blöchl <markus.bloechl@ipetronik.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Link: https://lore.kernel.org/r/20220217075231.1140-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/blk-core.c
block/genhd.c
drivers/block/mtip32xx/mtip32xx.c
drivers/block/rbd.c
drivers/block/xen-blkfront.c
drivers/md/dm.c
drivers/nvme/host/core.c
drivers/nvme/host/multipath.c
include/linux/blkdev.h