From: Christoph Hellwig Date: Tue, 24 May 2022 12:33:09 +0000 (+0200) Subject: block: freeze the queue earlier in del_gendisk X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Fblock-debugfs-name-reuse;p=users%2Fhch%2Fblock.git block: freeze the queue earlier in del_gendisk Ming mentioned that being able to observer request in debugfs might be useful while the queue is being frozen in del_gendisk. Move the free wait before blk_unregister_queue to make that possible. Signed-off-by: Christoph Hellwig --- diff --git a/block/genhd.c b/block/genhd.c index 36532b931841..8ff5b187791a 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -621,6 +621,7 @@ void del_gendisk(struct gendisk *disk) * Prevent new I/O from crossing bio_queue_enter(). */ blk_queue_start_drain(q); + blk_mq_freeze_queue_wait(q); if (!(disk->flags & GENHD_FL_HIDDEN)) { sysfs_remove_link(&disk_to_dev(disk)->kobj, "bdi"); @@ -644,8 +645,6 @@ void del_gendisk(struct gendisk *disk) pm_runtime_set_memalloc_noio(disk_to_dev(disk), false); device_del(disk_to_dev(disk)); - blk_mq_freeze_queue_wait(q); - blk_throtl_cancel_bios(disk->queue); blk_sync_queue(q);