Commit 9d135bb8 authored by Jens Axboe's avatar Jens Axboe

NVMe: replace blk_put_request() with blk_mq_free_request()

No point in using blk_put_request(), since we know we are blk-mq.
This only makes sense in core code where we could be dealing with
either legacy or blk-mq drivers. Additionally, use
blk_mq_free_hctx_request() for the request completion fast path,
where we already know the mapping from request to hardware queue.
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 8d76d101
...@@ -262,7 +262,7 @@ static void async_req_completion(struct nvme_queue *nvmeq, void *ctx, ...@@ -262,7 +262,7 @@ static void async_req_completion(struct nvme_queue *nvmeq, void *ctx,
dev_warn(nvmeq->q_dmadev, dev_warn(nvmeq->q_dmadev,
"async event result %08x\n", result); "async event result %08x\n", result);
blk_put_request(req); blk_mq_free_hctx_request(nvmeq->hctx, req);
} }
static void abort_completion(struct nvme_queue *nvmeq, void *ctx, static void abort_completion(struct nvme_queue *nvmeq, void *ctx,
...@@ -273,7 +273,7 @@ static void abort_completion(struct nvme_queue *nvmeq, void *ctx, ...@@ -273,7 +273,7 @@ static void abort_completion(struct nvme_queue *nvmeq, void *ctx,
u16 status = le16_to_cpup(&cqe->status) >> 1; u16 status = le16_to_cpup(&cqe->status) >> 1;
u32 result = le32_to_cpup(&cqe->result); u32 result = le32_to_cpup(&cqe->result);
blk_put_request(req); blk_mq_free_hctx_request(nvmeq->hctx, req);
dev_warn(nvmeq->q_dmadev, "Abort status:%x result:%x", status, result); dev_warn(nvmeq->q_dmadev, "Abort status:%x result:%x", status, result);
++nvmeq->dev->abort_limit; ++nvmeq->dev->abort_limit;
...@@ -286,7 +286,7 @@ static void async_completion(struct nvme_queue *nvmeq, void *ctx, ...@@ -286,7 +286,7 @@ static void async_completion(struct nvme_queue *nvmeq, void *ctx,
cmdinfo->result = le32_to_cpup(&cqe->result); cmdinfo->result = le32_to_cpup(&cqe->result);
cmdinfo->status = le16_to_cpup(&cqe->status) >> 1; cmdinfo->status = le16_to_cpup(&cqe->status) >> 1;
queue_kthread_work(cmdinfo->worker, &cmdinfo->work); queue_kthread_work(cmdinfo->worker, &cmdinfo->work);
blk_put_request(cmdinfo->req); blk_mq_free_hctx_request(nvmeq->hctx, cmdinfo->req);
} }
static inline struct nvme_cmd_info *get_cmd_from_tag(struct nvme_queue *nvmeq, static inline struct nvme_cmd_info *get_cmd_from_tag(struct nvme_queue *nvmeq,
...@@ -872,7 +872,7 @@ static int __nvme_submit_admin_cmd(struct nvme_dev *dev, struct nvme_command *cm ...@@ -872,7 +872,7 @@ static int __nvme_submit_admin_cmd(struct nvme_dev *dev, struct nvme_command *cm
if (!req) if (!req)
return -ENOMEM; return -ENOMEM;
res = nvme_submit_sync_cmd(req, cmd, result, timeout); res = nvme_submit_sync_cmd(req, cmd, result, timeout);
blk_put_request(req); blk_mq_free_request(req);
return res; return res;
} }
...@@ -893,7 +893,7 @@ int nvme_submit_io_cmd(struct nvme_dev *dev, struct nvme_ns *ns, ...@@ -893,7 +893,7 @@ int nvme_submit_io_cmd(struct nvme_dev *dev, struct nvme_ns *ns,
if (!req) if (!req)
return -ENOMEM; return -ENOMEM;
res = nvme_submit_sync_cmd(req, cmd, result, NVME_IO_TIMEOUT); res = nvme_submit_sync_cmd(req, cmd, result, NVME_IO_TIMEOUT);
blk_put_request(req); blk_mq_free_request(req);
return res; return res;
} }
...@@ -1047,7 +1047,7 @@ static void nvme_abort_req(struct request *req) ...@@ -1047,7 +1047,7 @@ static void nvme_abort_req(struct request *req)
dev_warn(nvmeq->q_dmadev, dev_warn(nvmeq->q_dmadev,
"Could not abort I/O %d QID %d", "Could not abort I/O %d QID %d",
req->tag, nvmeq->qid); req->tag, nvmeq->qid);
blk_put_request(req); blk_mq_free_request(req);
} }
} }
...@@ -1688,7 +1688,7 @@ static int nvme_user_cmd(struct nvme_dev *dev, struct nvme_ns *ns, ...@@ -1688,7 +1688,7 @@ static int nvme_user_cmd(struct nvme_dev *dev, struct nvme_ns *ns,
else { else {
status = nvme_submit_sync_cmd(req, &c, &cmd.result, status = nvme_submit_sync_cmd(req, &c, &cmd.result,
timeout); timeout);
blk_put_request(req); blk_mq_free_request(req);
} }
} else } else
status = __nvme_submit_admin_cmd(dev, &c, &cmd.result, timeout); status = __nvme_submit_admin_cmd(dev, &c, &cmd.result, timeout);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment