Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52b9c330 authored by Omar Sandoval's avatar Omar Sandoval Committed by Jens Axboe
Browse files

blk-mq: actually hook up defer list when running requests



If ->queue_rq() returns BLK_MQ_RQ_QUEUE_OK, we use continue and skip
over the rest of the loop body. However, dptr is assigned later in the
loop body, and the BLK_MQ_RQ_QUEUE_OK case is exactly the case that we'd
want it for.

NVMe isn't actually using BLK_MQ_F_DEFER_ISSUE yet, nor is any other
in-tree driver, but if the code's going to be there, it might as well
work.

Fixes: 74c45052 ("blk-mq: add a 'list' parameter to ->queue_rq()")
Signed-off-by: default avatarOmar Sandoval <osandov@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent ca93e453
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -785,7 +785,7 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx)
		switch (ret) {
		switch (ret) {
		case BLK_MQ_RQ_QUEUE_OK:
		case BLK_MQ_RQ_QUEUE_OK:
			queued++;
			queued++;
			continue;
			break;
		case BLK_MQ_RQ_QUEUE_BUSY:
		case BLK_MQ_RQ_QUEUE_BUSY:
			list_add(&rq->queuelist, &rq_list);
			list_add(&rq->queuelist, &rq_list);
			__blk_mq_requeue_request(rq);
			__blk_mq_requeue_request(rq);