diff options
author | Jens Axboe <axboe@fb.com> | 2014-11-17 12:43:42 -0500 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-11-17 12:43:42 -0500 |
commit | 9d135bb8c2a0d2e54b84ebc1b7d41852614fead8 (patch) | |
tree | 75b9f750cd85b461a490631cf10d7b1c70904c8e | |
parent | 8d76d1015d86f2b66c872fbcaf46072228d757a5 (diff) |
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: Jens Axboe <axboe@fb.com>
-rw-r--r-- | drivers/block/nvme-core.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index 8393f91b2721..bbac17f29fe7 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c | |||
@@ -262,7 +262,7 @@ static void async_req_completion(struct nvme_queue *nvmeq, void *ctx, | |||
262 | dev_warn(nvmeq->q_dmadev, | 262 | dev_warn(nvmeq->q_dmadev, |
263 | "async event result %08x\n", result); | 263 | "async event result %08x\n", result); |
264 | 264 | ||
265 | blk_put_request(req); | 265 | blk_mq_free_hctx_request(nvmeq->hctx, req); |
266 | } | 266 | } |
267 | 267 | ||
268 | static void abort_completion(struct nvme_queue *nvmeq, void *ctx, | 268 | 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 | u16 status = le16_to_cpup(&cqe->status) >> 1; | 273 | u16 status = le16_to_cpup(&cqe->status) >> 1; |
274 | u32 result = le32_to_cpup(&cqe->result); | 274 | u32 result = le32_to_cpup(&cqe->result); |
275 | 275 | ||
276 | blk_put_request(req); | 276 | blk_mq_free_hctx_request(nvmeq->hctx, req); |
277 | 277 | ||
278 | dev_warn(nvmeq->q_dmadev, "Abort status:%x result:%x", status, result); | 278 | dev_warn(nvmeq->q_dmadev, "Abort status:%x result:%x", status, result); |
279 | ++nvmeq->dev->abort_limit; | 279 | ++nvmeq->dev->abort_limit; |
@@ -286,7 +286,7 @@ static void async_completion(struct nvme_queue *nvmeq, void *ctx, | |||
286 | cmdinfo->result = le32_to_cpup(&cqe->result); | 286 | cmdinfo->result = le32_to_cpup(&cqe->result); |
287 | cmdinfo->status = le16_to_cpup(&cqe->status) >> 1; | 287 | cmdinfo->status = le16_to_cpup(&cqe->status) >> 1; |
288 | queue_kthread_work(cmdinfo->worker, &cmdinfo->work); | 288 | queue_kthread_work(cmdinfo->worker, &cmdinfo->work); |
289 | blk_put_request(cmdinfo->req); | 289 | blk_mq_free_hctx_request(nvmeq->hctx, cmdinfo->req); |
290 | } | 290 | } |
291 | 291 | ||
292 | static inline struct nvme_cmd_info *get_cmd_from_tag(struct nvme_queue *nvmeq, | 292 | 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 | if (!req) | 872 | if (!req) |
873 | return -ENOMEM; | 873 | return -ENOMEM; |
874 | res = nvme_submit_sync_cmd(req, cmd, result, timeout); | 874 | res = nvme_submit_sync_cmd(req, cmd, result, timeout); |
875 | blk_put_request(req); | 875 | blk_mq_free_request(req); |
876 | return res; | 876 | return res; |
877 | } | 877 | } |
878 | 878 | ||
@@ -893,7 +893,7 @@ int nvme_submit_io_cmd(struct nvme_dev *dev, struct nvme_ns *ns, | |||
893 | if (!req) | 893 | if (!req) |
894 | return -ENOMEM; | 894 | return -ENOMEM; |
895 | res = nvme_submit_sync_cmd(req, cmd, result, NVME_IO_TIMEOUT); | 895 | res = nvme_submit_sync_cmd(req, cmd, result, NVME_IO_TIMEOUT); |
896 | blk_put_request(req); | 896 | blk_mq_free_request(req); |
897 | return res; | 897 | return res; |
898 | } | 898 | } |
899 | 899 | ||
@@ -1047,7 +1047,7 @@ static void nvme_abort_req(struct request *req) | |||
1047 | dev_warn(nvmeq->q_dmadev, | 1047 | dev_warn(nvmeq->q_dmadev, |
1048 | "Could not abort I/O %d QID %d", | 1048 | "Could not abort I/O %d QID %d", |
1049 | req->tag, nvmeq->qid); | 1049 | req->tag, nvmeq->qid); |
1050 | blk_put_request(req); | 1050 | blk_mq_free_request(req); |
1051 | } | 1051 | } |
1052 | } | 1052 | } |
1053 | 1053 | ||
@@ -1688,7 +1688,7 @@ static int nvme_user_cmd(struct nvme_dev *dev, struct nvme_ns *ns, | |||
1688 | else { | 1688 | else { |
1689 | status = nvme_submit_sync_cmd(req, &c, &cmd.result, | 1689 | status = nvme_submit_sync_cmd(req, &c, &cmd.result, |
1690 | timeout); | 1690 | timeout); |
1691 | blk_put_request(req); | 1691 | blk_mq_free_request(req); |
1692 | } | 1692 | } |
1693 | } else | 1693 | } else |
1694 | status = __nvme_submit_admin_cmd(dev, &c, &cmd.result, timeout); | 1694 | status = __nvme_submit_admin_cmd(dev, &c, &cmd.result, timeout); |