blk-mq-sched: don't add flushes to the head of requeue queue
authorJens Axboe <axboe@fb.com>
Fri, 17 Feb 2017 18:37:14 +0000 (11:37 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 17 Feb 2017 19:35:47 +0000 (12:35 -0700)
If we are currently out of driver tags, we don't want to add a
new flush (without a tag) to the head of the requeue list. We
want to add it to the back, behind the others that are
potentially also waiting for a tag.

Signed-off-by: Jens Axboe <axboe@fb.com>
Reviewed-by: Omar Sandoval <osandov@fb.com>
block/blk-mq-sched.c

index 97fe904f0a04a3c3f0f4d571a4ac7ca844b44971..4ee7cb04381256bfd83fd1ecaac289149f161873 100644 (file)
@@ -351,7 +351,7 @@ static void blk_mq_sched_insert_flush(struct blk_mq_hw_ctx *hctx,
                blk_insert_flush(rq);
                blk_mq_run_hw_queue(hctx, true);
        } else
-               blk_mq_add_to_requeue_list(rq, true, true);
+               blk_mq_add_to_requeue_list(rq, false, true);
 }
 
 void blk_mq_sched_insert_request(struct request *rq, bool at_head,