diff --git a/block/blk-flush.c b/block/blk-flush.c
index 9c423e53324a29c1ba1213c6009822b15d75dac7..c81d56ec308f9b8a9691244aa453aaace171683b 100644
--- a/block/blk-flush.c
+++ b/block/blk-flush.c
@@ -422,7 +422,7 @@ void blk_insert_flush(struct request *rq)
 		if (q->mq_ops) {
 			blk_mq_insert_request(rq, false, false, true);
 		} else
-			list_add_tail(&rq->queuelist, &q->queue_head);
+			q->elevator->type->ops.elevator_add_req_fn(q, rq);
 		return;
 	}