loop.c (f21c4769d0de00f4873792f8e6f2d1c04c8cd898) | loop.c (f4b9e6c90c572519041f4c5d9c4c3dd50aff42d4) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * NVMe over Fabrics loopback device. 4 * Copyright (c) 2015-2016 HGST, a Western Digital Company. 5 */ 6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#include <linux/scatterlist.h> 8#include <linux/blk-mq.h> --- 127 unchanged lines hidden (view full) --- 136 struct request *req = bd->rq; 137 struct nvme_loop_iod *iod = blk_mq_rq_to_pdu(req); 138 bool queue_ready = test_bit(NVME_LOOP_Q_LIVE, &queue->flags); 139 blk_status_t ret; 140 141 if (!nvmf_check_ready(&queue->ctrl->ctrl, req, queue_ready)) 142 return nvmf_fail_nonready_command(&queue->ctrl->ctrl, req); 143 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * NVMe over Fabrics loopback device. 4 * Copyright (c) 2015-2016 HGST, a Western Digital Company. 5 */ 6#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 7#include <linux/scatterlist.h> 8#include <linux/blk-mq.h> --- 127 unchanged lines hidden (view full) --- 136 struct request *req = bd->rq; 137 struct nvme_loop_iod *iod = blk_mq_rq_to_pdu(req); 138 bool queue_ready = test_bit(NVME_LOOP_Q_LIVE, &queue->flags); 139 blk_status_t ret; 140 141 if (!nvmf_check_ready(&queue->ctrl->ctrl, req, queue_ready)) 142 return nvmf_fail_nonready_command(&queue->ctrl->ctrl, req); 143 |
144 ret = nvme_setup_cmd(ns, req, &iod->cmd); | 144 ret = nvme_setup_cmd(ns, req); |
145 if (ret) 146 return ret; 147 148 blk_mq_start_request(req); 149 iod->cmd.common.flags |= NVME_CMD_SGL_METABUF; 150 iod->req.port = queue->ctrl->port; 151 if (!nvmet_req_init(&iod->req, &queue->nvme_cq, 152 &queue->nvme_sq, &nvme_loop_ops)) --- 47 unchanged lines hidden (view full) --- 200 return 0; 201} 202 203static int nvme_loop_init_request(struct blk_mq_tag_set *set, 204 struct request *req, unsigned int hctx_idx, 205 unsigned int numa_node) 206{ 207 struct nvme_loop_ctrl *ctrl = set->driver_data; | 145 if (ret) 146 return ret; 147 148 blk_mq_start_request(req); 149 iod->cmd.common.flags |= NVME_CMD_SGL_METABUF; 150 iod->req.port = queue->ctrl->port; 151 if (!nvmet_req_init(&iod->req, &queue->nvme_cq, 152 &queue->nvme_sq, &nvme_loop_ops)) --- 47 unchanged lines hidden (view full) --- 200 return 0; 201} 202 203static int nvme_loop_init_request(struct blk_mq_tag_set *set, 204 struct request *req, unsigned int hctx_idx, 205 unsigned int numa_node) 206{ 207 struct nvme_loop_ctrl *ctrl = set->driver_data; |
208 struct nvme_loop_iod *iod = blk_mq_rq_to_pdu(req); |
|
208 209 nvme_req(req)->ctrl = &ctrl->ctrl; | 209 210 nvme_req(req)->ctrl = &ctrl->ctrl; |
211 nvme_req(req)->cmd = &iod->cmd; |
|
210 return nvme_loop_init_iod(ctrl, blk_mq_rq_to_pdu(req), 211 (set == &ctrl->tag_set) ? hctx_idx + 1 : 0); 212} 213 214static struct lock_class_key loop_hctx_fq_lock_key; 215 216static int nvme_loop_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, 217 unsigned int hctx_idx) --- 511 unchanged lines hidden --- | 212 return nvme_loop_init_iod(ctrl, blk_mq_rq_to_pdu(req), 213 (set == &ctrl->tag_set) ? hctx_idx + 1 : 0); 214} 215 216static struct lock_class_key loop_hctx_fq_lock_key; 217 218static int nvme_loop_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, 219 unsigned int hctx_idx) --- 511 unchanged lines hidden --- |