blk-flush: use blk_mq_request_bypass_insert()
authorMing Lei <ming.lei@redhat.com>
Thu, 2 Nov 2017 15:24:35 +0000 (23:24 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 4 Nov 2017 18:38:40 +0000 (12:38 -0600)
In the following patch, we will use RQF_FLUSH_SEQ to decide:

1) if the flag isn't set, the flush rq need to be inserted via
blk_insert_flush()

2) otherwise, the flush rq need to be dispatched directly since
it is in flush machinery now.

So we use blk_mq_request_bypass_insert() for requests of bypassing
flush machinery, just like the legacy path did.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-flush.c

index 81bd1a8430431c60b717a346d3b5c2af88a1b3c0..a9773d2075ac6cf0bbc08d75c4badb7b7b727698 100644 (file)
@@ -463,7 +463,7 @@ void blk_insert_flush(struct request *rq)
        if ((policy & REQ_FSEQ_DATA) &&
            !(policy & (REQ_FSEQ_PREFLUSH | REQ_FSEQ_POSTFLUSH))) {
                if (q->mq_ops)
-                       blk_mq_sched_insert_request(rq, false, false, false, false);
+                       blk_mq_request_bypass_insert(rq, false);
                else
                        list_add_tail(&rq->queuelist, &q->queue_head);
                return;