aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorOmar Sandoval2016-06-08 20:22:20 -0500
committerGreg Kroah-Hartman2016-10-07 08:23:44 -0500
commit4042db311c0fc3ebea3f85e39adba70ef01d5756 (patch)
treee6d872a66ed0c246732a6720b5d9c89324156722 /block
parent0e13a4948cbf910cf87f14331017adade75f7dd6 (diff)
downloadkernel-omap-4042db311c0fc3ebea3f85e39adba70ef01d5756.tar.gz
kernel-omap-4042db311c0fc3ebea3f85e39adba70ef01d5756.tar.xz
kernel-omap-4042db311c0fc3ebea3f85e39adba70ef01d5756.zip
blk-mq: actually hook up defer list when running requests
commit 52b9c330c6a8a4b5a1819bdaddf4ec76ab571e81 upstream. 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: 74c450521dd8 ("blk-mq: add a 'list' parameter to ->queue_rq()") Signed-off-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Jens Axboe <axboe@fb.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 839b1e17481b..c3e461ec40e4 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -780,7 +780,7 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx)
780 switch (ret) { 780 switch (ret) {
781 case BLK_MQ_RQ_QUEUE_OK: 781 case BLK_MQ_RQ_QUEUE_OK:
782 queued++; 782 queued++;
783 continue; 783 break;
784 case BLK_MQ_RQ_QUEUE_BUSY: 784 case BLK_MQ_RQ_QUEUE_BUSY:
785 list_add(&rq->queuelist, &rq_list); 785 list_add(&rq->queuelist, &rq_list);
786 __blk_mq_requeue_request(rq); 786 __blk_mq_requeue_request(rq);