If del_gendisk() is done when some io are still throttled, such io will not be handled until the throttle is done, which is not necessary. Changes in v2: - move WARN_ON_ONCE() from throtl_rb_first() to it's caller - merge some patches into one. Changes in v3: - some code optimization in patch 1 - hold queue lock to cancel bios in patch 2 Changes in v4: - delete rcu_read_lock() and rcu_read_unlock() in patch 2 Yu Kuai (2): blk-throtl: move WARN_ON_ONCE() from throtl_rb_first() to it's caller block: cancel all throttled bios in del_gendisk() block/blk-throttle.c | 74 ++++++++++++++++++++++++++++++++++++++++++-- block/blk-throttle.h | 2 ++ block/genhd.c | 2 ++ 3 files changed, 75 insertions(+), 3 deletions(-) -- 2.31.1