|
@@ -996,38 +996,6 @@ done:
|
|
|
return rq->tag != -1;
|
|
|
}
|
|
|
|
|
|
-static void __blk_mq_put_driver_tag(struct blk_mq_hw_ctx *hctx,
|
|
|
- struct request *rq)
|
|
|
-{
|
|
|
- blk_mq_put_tag(hctx, hctx->tags, rq->mq_ctx, rq->tag);
|
|
|
- rq->tag = -1;
|
|
|
-
|
|
|
- if (rq->rq_flags & RQF_MQ_INFLIGHT) {
|
|
|
- rq->rq_flags &= ~RQF_MQ_INFLIGHT;
|
|
|
- atomic_dec(&hctx->nr_active);
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-static void blk_mq_put_driver_tag_hctx(struct blk_mq_hw_ctx *hctx,
|
|
|
- struct request *rq)
|
|
|
-{
|
|
|
- if (rq->tag == -1 || rq->internal_tag == -1)
|
|
|
- return;
|
|
|
-
|
|
|
- __blk_mq_put_driver_tag(hctx, rq);
|
|
|
-}
|
|
|
-
|
|
|
-static void blk_mq_put_driver_tag(struct request *rq)
|
|
|
-{
|
|
|
- struct blk_mq_hw_ctx *hctx;
|
|
|
-
|
|
|
- if (rq->tag == -1 || rq->internal_tag == -1)
|
|
|
- return;
|
|
|
-
|
|
|
- hctx = blk_mq_map_queue(rq->q, rq->mq_ctx->cpu);
|
|
|
- __blk_mq_put_driver_tag(hctx, rq);
|
|
|
-}
|
|
|
-
|
|
|
/*
|
|
|
* If we fail getting a driver tag because all the driver tags are already
|
|
|
* assigned and on the dispatch list, BUT the first entry does not have a
|