]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
blk-mq: add missing blk_mq_put_ctx
authorAnkur Arora <ankur.a.arora@oracle.com>
Wed, 6 Sep 2017 19:47:52 +0000 (12:47 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Wed, 13 Sep 2017 04:46:09 +0000 (21:46 -0700)
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 <bhavesh.davda@oracle.com>
Reviewed-by: Jianchao Wang <jianchao.w.wang@oracle.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com>
block/blk-mq.c

index 93246bc6ec75f1d5ad9a95c23c1c9b646ea2cdc9..ef97afd4a473435a9235fed5952c8bf8ec309726 100644 (file)
@@ -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;
                }