Hello, Draining FS I/O on del_gendisk() is added for just avoiding to refer to recently added q->disk in IO path, and it isn't actually needed. Now we can move killing disk into queue's release handler, see patch 1, so no need to drain FS I/O on del_gendisk(). Draining FS I/O on del_gendisk() isn't reliable, see the following cases, so revert this behavior. 1) queue freezing can't drain FS I/O for bio based driver 2) it isn't easy to move elevator/cgroup/throttle shutdown during del_gendisk, and q->disk can still be referred in these code paths 3) the added flag of GD_DEAD may not be observed reliably in __bio_queue_enter() because queue freezing might not imply rcu grace period. Ming Lei (3): block: move freeing disk into queue's release handler block: revert aec89dc5d421 block: keep q_usage_counter in atomic mode after del_gendisk block: revert 8e141f9eb803 block: drain file system I/O on del_gendisk block/blk-core.c | 24 ++++++++++++------------ block/blk-mq.c | 9 +-------- block/blk-sysfs.c | 13 +++++++++++++ block/blk.h | 2 -- block/genhd.c | 31 +++++-------------------------- include/linux/genhd.h | 1 - 6 files changed, 31 insertions(+), 49 deletions(-) -- 2.31.1