block: fix surprise removal for drivers calling blk_set_queue_dying
Various block drivers call blk_set_queue_dying to mark a disk as dead due to surprise removal events, but since commit 8e141f9e 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: 8e141f9e ("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>
Showing
- block/blk-core.c 2 additions, 8 deletionsblock/blk-core.c
- block/genhd.c 14 additions, 0 deletionsblock/genhd.c
- drivers/block/mtip32xx/mtip32xx.c 1 addition, 1 deletiondrivers/block/mtip32xx/mtip32xx.c
- drivers/block/rbd.c 1 addition, 1 deletiondrivers/block/rbd.c
- drivers/block/xen-blkfront.c 1 addition, 1 deletiondrivers/block/xen-blkfront.c
- drivers/md/dm.c 1 addition, 1 deletiondrivers/md/dm.c
- drivers/nvme/host/core.c 1 addition, 1 deletiondrivers/nvme/host/core.c
- drivers/nvme/host/multipath.c 1 addition, 1 deletiondrivers/nvme/host/multipath.c
- include/linux/blkdev.h 2 additions, 1 deletioninclude/linux/blkdev.h
Please register or sign in to comment