Message ID | 9680c9b9108376337b3c4ee1f5c282eaac8440fd.1465435173.git.osandov@fb.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/08/2016 07:22 PM, Omar Sandoval wrote: > From: Omar Sandoval <osandov@fb.com> > > 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> Thanks Omar, good catch!
diff --git a/block/blk-mq.c b/block/blk-mq.c index 29cbc1b5fbdb..6eb9a8068f11 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -784,7 +784,7 @@ static void __blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx) switch (ret) { case BLK_MQ_RQ_QUEUE_OK: queued++; - continue; + break; case BLK_MQ_RQ_QUEUE_BUSY: list_add(&rq->queuelist, &rq_list); __blk_mq_requeue_request(rq);