nvmet: return bool from nvmet_passthru_ctrl and nvmet_is_passthru_req
authorChristoph Hellwig <hch@lst.de>
Fri, 27 Aug 2021 06:11:12 +0000 (08:11 +0200)
committerChristoph Hellwig <hch@lst.de>
Mon, 6 Sep 2021 07:59:03 +0000 (09:59 +0200)
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: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
drivers/nvme/target/admin-cmd.c
drivers/nvme/target/configfs.c
drivers/nvme/target/core.c
drivers/nvme/target/nvmet.h
drivers/nvme/target/passthru.c

index 0cb98f2bbc8c7842f323deefc4a6dc23b0218a0a..aa6d84d8848e7493a16918f36125d4a03012c9bc 100644 (file)
@@ -1015,7 +1015,7 @@ u16 nvmet_parse_admin_cmd(struct nvmet_req *req)
        if (unlikely(ret))
                return ret;
 
-       if (nvmet_req_passthru_ctrl(req))
+       if (nvmet_is_passthru_req(req))
                return nvmet_parse_passthru_admin_cmd(req);
 
        switch (cmd->common.opcode) {
index 27355512718891ea541cf50cfc8bda770675ea3c..f74485c705ff2ca751bc4531b5b98bb851c09cf8 100644 (file)
@@ -1028,7 +1028,7 @@ nvmet_subsys_attr_version_store_locked(struct nvmet_subsys *subsys,
        }
 
        /* passthru subsystems use the underlying controller's version */
-       if (nvmet_passthru_ctrl(subsys))
+       if (nvmet_is_passthru_subsys(subsys))
                return -EINVAL;
 
        ret = sscanf(page, "%d.%d.%d\n", &major, &minor, &tertiary);
index 11c44706dc2da2ec3f713a2893c5871bd08b173e..b8425fa34300f89e77d6a1a87fc8e5ede83ae7cc 100644 (file)
@@ -553,7 +553,7 @@ int nvmet_ns_enable(struct nvmet_ns *ns)
        mutex_lock(&subsys->lock);
        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");
                goto out_unlock;
        }
@@ -869,7 +869,7 @@ static u16 nvmet_parse_io_cmd(struct nvmet_req *req)
        if (unlikely(ret))
                return ret;
 
-       if (nvmet_req_passthru_ctrl(req))
+       if (nvmet_is_passthru_req(req))
                return nvmet_parse_passthru_io_cmd(req);
 
        ret = nvmet_req_find_ns(req);
@@ -1207,7 +1207,7 @@ static void nvmet_init_cap(struct nvmet_ctrl *ctrl)
        /* maximum queue entries supported: */
        ctrl->cap |= NVMET_QUEUE_SIZE - 1;
 
-       if (nvmet_passthru_ctrl(ctrl->subsys))
+       if (nvmet_is_passthru_subsys(ctrl->subsys))
                nvmet_passthrough_override_cap(ctrl);
 }
 
index 18311960796816ec13b0fa69962d90c2961089c1..7143c7fa746414bb7fa4bff321be9aa146882950 100644 (file)
@@ -582,7 +582,7 @@ int nvmet_passthru_ctrl_enable(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_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;
 }
@@ -601,16 +601,15 @@ static inline u16 nvmet_parse_passthru_io_cmd(struct nvmet_req *req)
 {
        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;
 }
 #endif /* CONFIG_NVME_TARGET_PASSTHRU */
 
-static inline struct nvme_ctrl *
-nvmet_req_passthru_ctrl(struct nvmet_req *req)
+static inline bool nvmet_is_passthru_req(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);
index 8784c487e46213e35e5805a3b6fd1f4def518442..f0efb353798980d4096d56c5ca7bfe285dc22949 100644 (file)
@@ -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)
 {
-       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 nvme_ns *ns = NULL;
        struct request *rq = NULL;
@@ -309,7 +309,7 @@ out:
  */
 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;
        u16 status = NVME_SC_INTERNAL;
        int ret;