From 7577ff1db8d82a5839887603c785d0591d0ebaf4 Mon Sep 17 00:00:00 2001 From: Ankur Arora Date: Wed, 6 Sep 2017 12:47:52 -0700 Subject: [PATCH] blk-mq: add missing blk_mq_put_ctx In case of failure to queue to the lower level driver, we enqueue it via blk_mq_insert_request() and return while holding a cpu reference. Give up the currently held reference before calling blk_mq_insert_request(). Orabug: 26339553 Suggested-by: Bhavesh Davda Reviewed-by: Jianchao Wang Reviewed-by: Boris Ostrovsky Signed-off-by: Ankur Arora --- block/blk-mq.c | 1 + 1 file changed, 1 insertion(+) diff --git a/block/blk-mq.c b/block/blk-mq.c index 93246bc6ec75..ef97afd4a473 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1273,6 +1273,7 @@ static void blk_mq_make_request(struct request_queue *q, struct bio *bio) blk_mq_end_request(rq, rq->errors); goto done; } + blk_mq_put_ctx(data.ctx); blk_mq_insert_request(rq, false, true, true); return; } -- 2.50.1