diff options
author | Ming Lei <ming.lei@redhat.com> | 2021-11-02 23:36:19 +0800 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-11-03 09:27:57 -0600 |
commit | 3b87c6ea671a18fb77709240d658f4201904f8e4 (patch) | |
tree | b00741334fd7d7a7e1fed3350bd6a2172db76ab2 /block/blk-core.c | |
parent | 62ba0c008f5d46006b71b2757e2db29e0ce7e68b (diff) | |
download | lwn-3b87c6ea671a18fb77709240d658f4201904f8e4.tar.gz lwn-3b87c6ea671a18fb77709240d658f4201904f8e4.zip |
blk-mq: update hctx->nr_active in blk_mq_end_request_batch()
In case of shared tags and none io sched, batched completion still may
be run into, and hctx->nr_active is accounted when getting driver tag,
so it has to be updated in blk_mq_end_request_batch().
Otherwise, hctx->nr_active may become same with queue depth, then
hctx_may_queue() always return false, then io hang is caused.
Fixes the issue by updating the counter in batched way.
Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Fixes: f794f3351f26 ("block: add support for blk_mq_end_request_batch()")
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20211102153619.3627505-4-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-core.c')
0 files changed, 0 insertions, 0 deletions