Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0850297 authored by Ming Lei's avatar Ming Lei Committed by Jens Axboe
Browse files

block: pass 'run_queue' to blk_mq_request_bypass_insert



Block flush need this function without running the queue, so add a
parameter controlling whether we run it or not.

Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 9c71c83c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2397,7 +2397,7 @@ blk_status_t blk_insert_cloned_request(struct request_queue *q, struct request *
		 * bypass a potential scheduler on the bottom device for
		 * insert.
		 */
		blk_mq_request_bypass_insert(rq);
		blk_mq_request_bypass_insert(rq, true);
		return BLK_STS_OK;
	}

+3 −2
Original line number Diff line number Diff line
@@ -1492,7 +1492,7 @@ void __blk_mq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
 * Should only be used carefully, when the caller knows we want to
 * bypass a potential IO scheduler on the target device.
 */
void blk_mq_request_bypass_insert(struct request *rq)
void blk_mq_request_bypass_insert(struct request *rq, bool run_queue)
{
	struct blk_mq_ctx *ctx = rq->mq_ctx;
	struct blk_mq_hw_ctx *hctx = blk_mq_map_queue(rq->q, ctx->cpu);
@@ -1501,6 +1501,7 @@ void blk_mq_request_bypass_insert(struct request *rq)
	list_add_tail(&rq->queuelist, &hctx->dispatch);
	spin_unlock(&hctx->lock);

	if (run_queue)
		blk_mq_run_hw_queue(hctx, false);
}

+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ int blk_mq_alloc_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags,
 */
void __blk_mq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
				bool at_head);
void blk_mq_request_bypass_insert(struct request *rq);
void blk_mq_request_bypass_insert(struct request *rq, bool run_queue);
void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx,
				struct list_head *list);