Commit 8b957415 authored by Jens Axboe's avatar Jens Axboe

blk-mq: use blk_mq_start_hw_queues() when running requeue work

When requests are retried due to hw or sw resource shortages,
we often stop the associated hardware queue. So ensure that we
restart the queues when running the requeue work, otherwise the
queue run will be a no-op.
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 6b55e1f2
...@@ -479,7 +479,11 @@ static void blk_mq_requeue_work(struct work_struct *work) ...@@ -479,7 +479,11 @@ static void blk_mq_requeue_work(struct work_struct *work)
blk_mq_insert_request(rq, false, false, false); blk_mq_insert_request(rq, false, false, false);
} }
blk_mq_run_queues(q, false); /*
* Use the start variant of queue running here, so that running
* the requeue work will kick stopped queues.
*/
blk_mq_start_hw_queues(q);
} }
void blk_mq_add_to_requeue_list(struct request *rq, bool at_head) void blk_mq_add_to_requeue_list(struct request *rq, bool at_head)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment