]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
nvme: Add wrappers for NS attach/detach
authorJeremy Kerr <jk@codeconstruct.com.au>
Tue, 19 Jul 2022 09:09:23 +0000 (17:09 +0800)
committerJeremy Kerr <jk@codeconstruct.com.au>
Wed, 17 Aug 2022 05:10:39 +0000 (13:10 +0800)
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
nvme-wrap.c
nvme-wrap.h
nvme.c

index 458b0a66ac3cad54aea3aa89291fbc7d80e34f9d..4d241ac812e76b424d4206cbd5a391e4c44664e8 100644 (file)
@@ -106,6 +106,22 @@ int nvme_cli_ns_mgmt_delete(struct nvme_dev *dev, __u32 nsid)
        return do_admin_op(ns_mgmt_delete, dev, nsid);
 }
 
+int nvme_cli_ns_attach(struct nvme_dev *dev, struct nvme_ns_attach_args *args)
+{
+       return do_admin_args_op(ns_attach, dev, args);
+}
+
+int nvme_cli_ns_attach_ctrls(struct nvme_dev *dev, __u32 nsid,
+                            struct nvme_ctrl_list *ctrlist)
+{
+       return do_admin_op(ns_attach_ctrls, dev, nsid, ctrlist);
+}
+
+int nvme_cli_ns_detach_ctrls(struct nvme_dev *dev, __u32 nsid,
+                            struct nvme_ctrl_list *ctrlist)
+{
+       return do_admin_op(ns_detach_ctrls, dev, nsid, ctrlist);
+}
 
 /* The MI & direct interfaces don't have an exactly-matching API for
  * ns_mgmt_create, as we don't support a timeout for MI.
index 3a197c7df3236e4addbed7113250fdb633be972d..51cb76d8b78b22be9310dedeee63b75815ebc61e 100644 (file)
@@ -29,6 +29,13 @@ int nvme_cli_ns_mgmt_delete(struct nvme_dev *dev, __u32 nsid);
 int nvme_cli_ns_mgmt_create(struct nvme_dev *dev, struct nvme_id_ns *ns,
                        __u32 *nsid, __u32 timeout, __u8 csi);
 
+int nvme_cli_ns_attach(struct nvme_dev *dev, struct nvme_ns_attach_args *args);
+
+int nvme_cli_ns_attach_ctrls(struct nvme_dev *dev, __u32 nsid,
+                            struct nvme_ctrl_list *ctrlist);
+int nvme_cli_ns_detach_ctrls(struct nvme_dev *dev, __u32 nsid,
+                            struct nvme_ctrl_list *ctrlist);
+
 int nvme_cli_get_features(struct nvme_dev *dev,
                          struct nvme_get_features_args *args);
 
diff --git a/nvme.c b/nvme.c
index 68c3b2cf0cd5aea1410090e6462ff36846c202ee..098ec449163d4798146b615330aa13f8270d932d 100644 (file)
--- a/nvme.c
+++ b/nvme.c
@@ -2454,11 +2454,11 @@ static int nvme_attach_ns(int argc, char **argv, int attach, const char *desc, s
        nvme_init_ctrl_list(&cntlist, num, ctrlist);
 
        if (attach)
-               err = nvme_ns_attach_ctrls(dev_fd(dev), cfg.namespace_id,
-                                          &cntlist);
+               err = nvme_cli_ns_attach_ctrls(dev, cfg.namespace_id,
+                                              &cntlist);
        else
-               err = nvme_ns_detach_ctrls(dev_fd(dev), cfg.namespace_id,
-                                          &cntlist);
+               err = nvme_cli_ns_detach_ctrls(dev, cfg.namespace_id,
+                                              &cntlist);
 
        if (!err)
                printf("%s: Success, nsid:%d\n", cmd->name, cfg.namespace_id);