Commit 807b1041 authored by Omar Sandoval's avatar Omar Sandoval Committed by Jens Axboe

blk-mq: make driver tag failure path easier to follow

Minor cleanup that makes it easier to figure out what's going on in the
driver tag allocation failure path of blk_mq_dispatch_rq_list().
Signed-off-by: default avatarOmar Sandoval <osandov@fb.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent ee056f98
...@@ -1003,17 +1003,16 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list) ...@@ -1003,17 +1003,16 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list)
* The initial allocation attempt failed, so we need to * The initial allocation attempt failed, so we need to
* rerun the hardware queue when a tag is freed. * rerun the hardware queue when a tag is freed.
*/ */
if (blk_mq_dispatch_wait_add(hctx)) { if (!blk_mq_dispatch_wait_add(hctx))
break;
/* /*
* It's possible that a tag was freed in the * It's possible that a tag was freed in the window
* window between the allocation failure and * between the allocation failure and adding the
* adding the hardware queue to the wait queue. * hardware queue to the wait queue.
*/ */
if (!blk_mq_get_driver_tag(rq, &hctx, false)) if (!blk_mq_get_driver_tag(rq, &hctx, false))
break; break;
} else {
break;
}
} }
list_del_init(&rq->queuelist); list_del_init(&rq->queuelist);
......
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