Skip to content

Commit

Permalink
blk-mq: don't special case flush inserts for blk-mq-sched
Browse files Browse the repository at this point in the history
The current request insertion machinery works just fine for
directly inserting flushes, so no need to special case
this anymore.

Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
  • Loading branch information
axboe committed Feb 17, 2017
1 parent c7a571b commit 0c2a6fe
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions block/blk-mq.c
Original file line number Diff line number Diff line change
Expand Up @@ -1434,12 +1434,11 @@ static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio)
cookie = request_to_qc_t(data.hctx, rq);

if (unlikely(is_flush_fua)) {
blk_mq_put_ctx(data.ctx);
if (q->elevator)
goto elv_insert;
blk_mq_bio_to_request(rq, bio);
blk_mq_get_driver_tag(rq, NULL, true);
blk_insert_flush(rq);
blk_mq_run_hw_queue(data.hctx, true);
goto done;
goto run_queue;
}

plug = current->plug;
Expand Down Expand Up @@ -1489,6 +1488,7 @@ static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio)
}

if (q->elevator) {
elv_insert:
blk_mq_put_ctx(data.ctx);
blk_mq_bio_to_request(rq, bio);
blk_mq_sched_insert_request(rq, false, true,
Expand All @@ -1502,6 +1502,7 @@ static blk_qc_t blk_mq_make_request(struct request_queue *q, struct bio *bio)
* latter allows for merging opportunities and more efficient
* dispatching.
*/
run_queue:
blk_mq_run_hw_queue(data.hctx, !is_sync || is_flush_fua);
}
blk_mq_put_ctx(data.ctx);
Expand Down Expand Up @@ -1557,12 +1558,11 @@ static blk_qc_t blk_sq_make_request(struct request_queue *q, struct bio *bio)
cookie = request_to_qc_t(data.hctx, rq);

if (unlikely(is_flush_fua)) {
blk_mq_put_ctx(data.ctx);
if (q->elevator)
goto elv_insert;
blk_mq_bio_to_request(rq, bio);
blk_mq_get_driver_tag(rq, NULL, true);
blk_insert_flush(rq);
blk_mq_run_hw_queue(data.hctx, true);
goto done;
goto run_queue;
}

/*
Expand Down Expand Up @@ -1600,6 +1600,7 @@ static blk_qc_t blk_sq_make_request(struct request_queue *q, struct bio *bio)
}

if (q->elevator) {
elv_insert:
blk_mq_put_ctx(data.ctx);
blk_mq_bio_to_request(rq, bio);
blk_mq_sched_insert_request(rq, false, true,
Expand All @@ -1613,6 +1614,7 @@ static blk_qc_t blk_sq_make_request(struct request_queue *q, struct bio *bio)
* latter allows for merging opportunities and more efficient
* dispatching.
*/
run_queue:
blk_mq_run_hw_queue(data.hctx, !is_sync || is_flush_fua);
}

Expand Down

0 comments on commit 0c2a6fe

Please sign in to comment.