Hello Jens, The 1st 11 patch cleans up elevator change code, and unifying it via single helper, meantime moves kobject_add/del & debugfs register/unregister out of queue freezing & elevator_lock. This way fixes many lockdep warnings reported recently, especially since fs_reclaim is connected with freeze lock manually by commit ffa1e7ada456 ("block: Make request_queue lockdep splats show up earlier"). The other 4 ones fixes lockdep warnings from bfq and updating nr_hw_queues code. Also the 4th patch fixes kasan warning & oops report from Shinichiro by preventing elevator switching when updating nr_hw_queues is in-progress. Thanks, Ming Lei (15): block: don't call freeze queue in elevator_switch() and elevator_disable() block: add two helpers for registering/un-registering sched debugfs block: move sched debugfs register into elvevator_register_queue block: prevent elevator switch during updating nr_hw_queues block: simplify elevator reset for updating nr_hw_queues block: add helper of elevator_change() block: move blk_unregister_queue() & device_del() after freeze wait block: add `struct elev_change_ctx` for unifying elevator change block: unifying elevator change block: pass elevator_queue to elv_register_queue & unregister_queue block: move elv_register[unregister]_queue out of elevator_lock block: move debugfs/sysfs register out of freezing queue block: remove several ->elevator_lock block: move hctx cpuhp add/del out of queue freezing block: move wbt_enable_default() out of queue freezing from scheduler's ->exit() block/bfq-iosched.c | 2 +- block/blk-mq-debugfs.c | 13 +-- block/blk-mq-sched.c | 39 +++++--- block/blk-mq.c | 163 +++++++++--------------------- block/blk-sysfs.c | 18 ++-- block/blk.h | 10 +- block/elevator.c | 221 ++++++++++++++++++++++++++--------------- block/elevator.h | 16 +++ block/genhd.c | 25 +---- include/linux/blk-mq.h | 10 +- 10 files changed, 256 insertions(+), 261 deletions(-) -- 2.47.0