This is v3 of patch/series. I have spun off a new patch for tag allocation refactoring. Details are in commit messages. Changes since v2: - Spin off separate patch for tag allocation refactoring - Combine sched shared sbitmap code into a single function Changes since v1: - Embed sbitmaps in request_queue struct - Relocate IO sched functions to blk-mq-sched.c - Fix error path code Please retest, thanks! For some reason I could not recreate the original issue, but I am using qemu... John Garry (2): blk-mq: Some tag allocation code refactoring blk-mq: Use request queue-wide tags for tagset-wide sbitmap block/blk-mq-sched.c | 67 ++++++++++++++++++++++++++++++++++-------- block/blk-mq-sched.h | 2 ++ block/blk-mq-tag.c | 65 +++++++++++++++++++++++----------------- block/blk-mq-tag.h | 9 ++++-- block/blk-mq.c | 15 ++++++++-- include/linux/blkdev.h | 4 +++ 6 files changed, 116 insertions(+), 46 deletions(-) -- 2.26.2