nvmet: introduce flags member in nvmet_fabrics_ops
authorMax Gurtovoy <maxg@mellanox.com>
Tue, 2 Jun 2020 13:15:46 +0000 (16:15 +0300)
committerChristoph Hellwig <hch@lst.de>
Wed, 8 Jul 2020 14:16:17 +0000 (16:16 +0200)
Replace has_keyed_sgls and metadata_support booleans with a flags member
that will be used for adding more features in the future.

Signed-off-by: Max Gurtovoy <maxg@mellanox.com>
Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>
Reviewed-by: Israel Rukshin <israelr@mellanox.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/admin-cmd.c
drivers/nvme/target/core.c
drivers/nvme/target/discovery.c
drivers/nvme/target/nvmet.h
drivers/nvme/target/rdma.c

index 1db8c04..95bb3bc 100644 (file)
@@ -427,7 +427,7 @@ static void nvmet_execute_identify_ctrl(struct nvmet_req *req)
        id->awupf = 0;
 
        id->sgls = cpu_to_le32(1 << 0); /* we always support SGLs */
-       if (ctrl->ops->has_keyed_sgls)
+       if (ctrl->ops->flags & NVMF_KEYED_SGLS)
                id->sgls |= cpu_to_le32(1 << 2);
        if (req->port->inline_data_size)
                id->sgls |= cpu_to_le32(1 << 20);
index 6816507..9cdc39c 100644 (file)
@@ -336,7 +336,7 @@ int nvmet_enable_port(struct nvmet_port *port)
         * If the user requested PI support and the transport isn't pi capable,
         * don't enable the port.
         */
-       if (port->pi_enable && !ops->metadata_support) {
+       if (port->pi_enable && !(ops->flags & NVMF_METADATA_SUPPORTED)) {
                pr_err("T10-PI is not supported by transport type %d\n",
                       port->disc_addr.trtype);
                ret = -EINVAL;
index 40cf0b6..f40c05c 100644 (file)
@@ -277,7 +277,7 @@ static void nvmet_execute_disc_identify(struct nvmet_req *req)
        id->maxcmd = cpu_to_le16(NVMET_MAX_CMD);
 
        id->sgls = cpu_to_le32(1 << 0); /* we always support SGLs */
-       if (ctrl->ops->has_keyed_sgls)
+       if (ctrl->ops->flags & NVMF_KEYED_SGLS)
                id->sgls |= cpu_to_le32(1 << 2);
        if (req->port->inline_data_size)
                id->sgls |= cpu_to_le32(1 << 20);
index 8096912..6f8bd6a 100644 (file)
@@ -286,8 +286,9 @@ struct nvmet_fabrics_ops {
        struct module *owner;
        unsigned int type;
        unsigned int msdbd;
-       bool has_keyed_sgls : 1;
-       bool metadata_support : 1;
+       unsigned int flags;
+#define NVMF_KEYED_SGLS                        (1 << 0)
+#define NVMF_METADATA_SUPPORTED                (1 << 1)
        void (*queue_response)(struct nvmet_req *req);
        int (*add_port)(struct nvmet_port *port);
        void (*remove_port)(struct nvmet_port *port);
index 76ea23a..6731e03 100644 (file)
@@ -1970,8 +1970,7 @@ static const struct nvmet_fabrics_ops nvmet_rdma_ops = {
        .owner                  = THIS_MODULE,
        .type                   = NVMF_TRTYPE_RDMA,
        .msdbd                  = 1,
-       .has_keyed_sgls         = 1,
-       .metadata_support       = 1,
+       .flags                  = NVMF_KEYED_SGLS | NVMF_METADATA_SUPPORTED,
        .add_port               = nvmet_rdma_add_port,
        .remove_port            = nvmet_rdma_remove_port,
        .queue_response         = nvmet_rdma_queue_response,