Hi, this series contain several bugfix patches to fix potential io hung and a few cleanup patches to remove stale codes and unnecessary check. Most changes are in request issue and dispatch path. Thanks. --- V3: -Collect Reviewed-by from Christoph -Add new patch "blk-mq: make blk_mq_commit_rqs a general function for all commits" suggested-by Christoph -Move patch "blk-mq: remove unncessary from_schedule parameter in blk_mq_plug_issue_direct" forwad. This is because of some abandoned work, no influence anyway. No special attention should be paied. -Make patch based on rewriten blk_mq_commit_rqs. V2: -Thanks Christoph for review and there are two fixes in v2 according to recommends from Christoph. 1)Avoid overly long line in patch "blk-mq: avoid sleep in blk_mq_alloc_request_hctx" 2)Check BLK_MQ_REQ_NOWAIT and BLK_MQ_REQ_RESERVED in two WARN_ON_ONCE --- Kemeng Shi (14): blk-mq: avoid sleep in blk_mq_alloc_request_hctx blk-mq: remove stale comment for blk_mq_sched_mark_restart_hctx blk-mq: wait on correct sbitmap_queue in blk_mq_mark_tag_wait blk-mq: Fix potential io hung for shared sbitmap per tagset blk-mq: remove unnecessary list_empty check in blk_mq_try_issue_list_directly blk-mq: remove unncessary from_schedule parameter in blk_mq_plug_issue_direct blk-mq: make blk_mq_commit_rqs a general function for all commits blk-mq: remove unncessary error count and commit in blk_mq_plug_issue_direct blk-mq: use blk_mq_commit_rqs helper in blk_mq_try_issue_list_directly blk-mq: simplify flush check in blk_mq_dispatch_rq_list blk-mq: remove unnecessary error count and check in blk_mq_dispatch_rq_list blk-mq: remove set of bd->last when get driver tag for next request fails blk-mq: use switch/case to improve readability in blk_mq_try_issue_list_directly blk-mq: correct stale comment of .get_budget block/blk-mq-sched.c | 7 +-- block/blk-mq.c | 147 ++++++++++++++++++++----------------------- 2 files changed, 71 insertions(+), 83 deletions(-) -- 2.30.0