Commit ab7a2737 authored by Christoph Hellwig's avatar Christoph Hellwig

nvmet: return bool from nvmet_passthru_ctrl and nvmet_is_passthru_req

The target core code never needs the host-side nvme_ctrl structure.
Open code two uses of nvmet_is_passthru_req in passthru.c, and then
switch the helpers used by the core to return bool.  Also rename the
fuctions to better match their usage:

  nvmet_passthru_ctrl -> nvmet_is_passthru_subsys
  nvmet_req_passthru_ctrl -> nvmet_is_passthru_req
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
parent 77d651a6
...@@ -1015,7 +1015,7 @@ u16 nvmet_parse_admin_cmd(struct nvmet_req *req) ...@@ -1015,7 +1015,7 @@ u16 nvmet_parse_admin_cmd(struct nvmet_req *req)
if (unlikely(ret)) if (unlikely(ret))
return ret; return ret;
if (nvmet_req_passthru_ctrl(req)) if (nvmet_is_passthru_req(req))
return nvmet_parse_passthru_admin_cmd(req); return nvmet_parse_passthru_admin_cmd(req);
switch (cmd->common.opcode) { switch (cmd->common.opcode) {
......
...@@ -1028,7 +1028,7 @@ nvmet_subsys_attr_version_store_locked(struct nvmet_subsys *subsys, ...@@ -1028,7 +1028,7 @@ nvmet_subsys_attr_version_store_locked(struct nvmet_subsys *subsys,
} }
/* passthru subsystems use the underlying controller's version */ /* passthru subsystems use the underlying controller's version */
if (nvmet_passthru_ctrl(subsys)) if (nvmet_is_passthru_subsys(subsys))
return -EINVAL; return -EINVAL;
ret = sscanf(page, "%d.%d.%d\n", &major, &minor, &tertiary); ret = sscanf(page, "%d.%d.%d\n", &major, &minor, &tertiary);
......
...@@ -553,7 +553,7 @@ int nvmet_ns_enable(struct nvmet_ns *ns) ...@@ -553,7 +553,7 @@ int nvmet_ns_enable(struct nvmet_ns *ns)
mutex_lock(&subsys->lock); mutex_lock(&subsys->lock);
ret = 0; ret = 0;
if (nvmet_passthru_ctrl(subsys)) { if (nvmet_is_passthru_subsys(subsys)) {
pr_info("cannot enable both passthru and regular namespaces for a single subsystem"); pr_info("cannot enable both passthru and regular namespaces for a single subsystem");
goto out_unlock; goto out_unlock;
} }
...@@ -869,7 +869,7 @@ static u16 nvmet_parse_io_cmd(struct nvmet_req *req) ...@@ -869,7 +869,7 @@ static u16 nvmet_parse_io_cmd(struct nvmet_req *req)
if (unlikely(ret)) if (unlikely(ret))
return ret; return ret;
if (nvmet_req_passthru_ctrl(req)) if (nvmet_is_passthru_req(req))
return nvmet_parse_passthru_io_cmd(req); return nvmet_parse_passthru_io_cmd(req);
ret = nvmet_req_find_ns(req); ret = nvmet_req_find_ns(req);
...@@ -1207,7 +1207,7 @@ static void nvmet_init_cap(struct nvmet_ctrl *ctrl) ...@@ -1207,7 +1207,7 @@ static void nvmet_init_cap(struct nvmet_ctrl *ctrl)
/* maximum queue entries supported: */ /* maximum queue entries supported: */
ctrl->cap |= NVMET_QUEUE_SIZE - 1; ctrl->cap |= NVMET_QUEUE_SIZE - 1;
if (nvmet_passthru_ctrl(ctrl->subsys)) if (nvmet_is_passthru_subsys(ctrl->subsys))
nvmet_passthrough_override_cap(ctrl); nvmet_passthrough_override_cap(ctrl);
} }
......
...@@ -582,7 +582,7 @@ int nvmet_passthru_ctrl_enable(struct nvmet_subsys *subsys); ...@@ -582,7 +582,7 @@ int nvmet_passthru_ctrl_enable(struct nvmet_subsys *subsys);
void nvmet_passthru_ctrl_disable(struct nvmet_subsys *subsys); void nvmet_passthru_ctrl_disable(struct nvmet_subsys *subsys);
u16 nvmet_parse_passthru_admin_cmd(struct nvmet_req *req); u16 nvmet_parse_passthru_admin_cmd(struct nvmet_req *req);
u16 nvmet_parse_passthru_io_cmd(struct nvmet_req *req); u16 nvmet_parse_passthru_io_cmd(struct nvmet_req *req);
static inline struct nvme_ctrl *nvmet_passthru_ctrl(struct nvmet_subsys *subsys) static inline bool nvmet_is_passthru_subsys(struct nvmet_subsys *subsys)
{ {
return subsys->passthru_ctrl; return subsys->passthru_ctrl;
} }
...@@ -601,16 +601,15 @@ static inline u16 nvmet_parse_passthru_io_cmd(struct nvmet_req *req) ...@@ -601,16 +601,15 @@ static inline u16 nvmet_parse_passthru_io_cmd(struct nvmet_req *req)
{ {
return 0; return 0;
} }
static inline struct nvme_ctrl *nvmet_passthru_ctrl(struct nvmet_subsys *subsys) static inline bool nvmet_is_passthru_subsys(struct nvmet_subsys *subsys)
{ {
return NULL; return NULL;
} }
#endif /* CONFIG_NVME_TARGET_PASSTHRU */ #endif /* CONFIG_NVME_TARGET_PASSTHRU */
static inline struct nvme_ctrl * static inline bool nvmet_is_passthru_req(struct nvmet_req *req)
nvmet_req_passthru_ctrl(struct nvmet_req *req)
{ {
return nvmet_passthru_ctrl(nvmet_req_subsys(req)); return nvmet_is_passthru_subsys(nvmet_req_subsys(req));
} }
void nvmet_passthrough_override_cap(struct nvmet_ctrl *ctrl); void nvmet_passthrough_override_cap(struct nvmet_ctrl *ctrl);
......
...@@ -228,7 +228,7 @@ static int nvmet_passthru_map_sg(struct nvmet_req *req, struct request *rq) ...@@ -228,7 +228,7 @@ static int nvmet_passthru_map_sg(struct nvmet_req *req, struct request *rq)
static void nvmet_passthru_execute_cmd(struct nvmet_req *req) static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
{ {
struct nvme_ctrl *ctrl = nvmet_req_passthru_ctrl(req); struct nvme_ctrl *ctrl = nvmet_req_subsys(req)->passthru_ctrl;
struct request_queue *q = ctrl->admin_q; struct request_queue *q = ctrl->admin_q;
struct nvme_ns *ns = NULL; struct nvme_ns *ns = NULL;
struct request *rq = NULL; struct request *rq = NULL;
...@@ -309,7 +309,7 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req) ...@@ -309,7 +309,7 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
*/ */
static void nvmet_passthru_set_host_behaviour(struct nvmet_req *req) static void nvmet_passthru_set_host_behaviour(struct nvmet_req *req)
{ {
struct nvme_ctrl *ctrl = nvmet_req_passthru_ctrl(req); struct nvme_ctrl *ctrl = nvmet_req_subsys(req)->passthru_ctrl;
struct nvme_feat_host_behavior *host; struct nvme_feat_host_behavior *host;
u16 status = NVME_SC_INTERNAL; u16 status = NVME_SC_INTERNAL;
int ret; int ret;
......
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