From: Jeremy Kerr Date: Tue, 19 Jul 2022 09:09:23 +0000 (+0800) Subject: nvme: Add wrappers for NS attach/detach X-Git-Tag: v2.2~48^2~3 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=b7f7ec1fbae79ab88e1fb00e476370c944a3d7d9;p=users%2Fsagi%2Fnvme-cli.git nvme: Add wrappers for NS attach/detach Signed-off-by: Jeremy Kerr --- diff --git a/nvme-wrap.c b/nvme-wrap.c index 458b0a66..4d241ac8 100644 --- a/nvme-wrap.c +++ b/nvme-wrap.c @@ -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. diff --git a/nvme-wrap.h b/nvme-wrap.h index 3a197c7d..51cb76d8 100644 --- a/nvme-wrap.h +++ b/nvme-wrap.h @@ -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 68c3b2cf..098ec449 100644 --- 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);