From: Yu Kuai <yukuai3@xxxxxxxxxx> Currently issue io can grab queue_lock three times from bfq_bio_merge(), bfq_limit_depth() and bfq_prepare_request(), the queue_lock is not necessary if icq is already created because both queue and ioc can't be freed before io issuing is done. This set first add a lockless helper ioc_lookup_icq_rcu() and then covert to use the new helper. Noted this is also a prep set to support request batch dispatching[1]. 1. https://lore.kernel.org/all/20250722072431.610354-1-yukuai1@xxxxxxxxxxxxxxx/ Yu Kuai (3): blk-ioc: add a new helper ioc_lookup_icq_rcu() block, bfq: convert to use ioc_lookup_icq_rcu() blk-ioc: convert to use ioc_lookup_icq_rcu() block/bfq-iosched.c | 23 ++++++----------------- block/blk-ioc.c | 46 ++++++++++++++++++++++----------------------- block/blk.h | 2 +- 3 files changed, 29 insertions(+), 42 deletions(-) -- 2.39.2