Hi Guys, The 1st patch removes hctx_lock and hctx_unlock, and optimize dispatch code path a bit. The 2nd patch moves srcu from blk_mq_hw_ctx to request_queue. The other patches add one new helper for supporting quiesce in parallel. V2: - add patch of 'remove hctx_lock and hctx_unlock' - replace ->alloc_srcu with queue flag, as suggested by Sagi Ming Lei (5): blk-mq: remove hctx_lock and hctx_unlock blk-mq: move srcu from blk_mq_hw_ctx to request_queue blk-mq: add helper of blk_mq_shared_quiesce_wait() nvme: quiesce namespace queue in parallel scsi: use blk-mq quiesce APIs to implement scsi_host_block block/blk-core.c | 27 +++++++-- block/blk-mq-sysfs.c | 2 - block/blk-mq.c | 116 +++++++++++++-------------------------- block/blk-sysfs.c | 3 +- block/blk.h | 10 +++- block/genhd.c | 2 +- drivers/nvme/host/core.c | 9 ++- drivers/scsi/scsi_lib.c | 16 +++--- include/linux/blk-mq.h | 21 ++++--- include/linux/blkdev.h | 9 +++ 10 files changed, 109 insertions(+), 106 deletions(-) -- 2.31.1