]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
tree: add nvme_ctrl_get_ana_state()
authorHannes Reinecke <hare@suse.de>
Fri, 11 Mar 2022 08:06:36 +0000 (09:06 +0100)
committerHannes Reinecke <hare@suse.de>
Fri, 11 Mar 2022 13:13:21 +0000 (14:13 +0100)
Add a function to return the ANA state of a namespace on a given
controller.

Signed-off-by: Hannes Reinecke <hare@suse.de>
src/libnvme.map
src/nvme/tree.c
src/nvme/tree.h

index c5a67209a3d229db56fe3aa4b3921c6c5a743481..7463174cb0ab0d48dc9a6ed86f233cfea34654e2 100644 (file)
@@ -12,6 +12,7 @@ LIBNVME_1_0 {
                nvme_ctrl_first_ns;
                nvme_ctrl_first_path;
                nvme_ctrl_get_address;
+               nvme_ctrl_get_ana_state;
                nvme_ctrl_get_dhchap_key;
                nvme_ctrl_get_discovery_ctrl;
                nvme_ctrl_get_fd;
index 3e95fb0a518404b8b203fc174cd652e4a77c389e..47e22ed38b6634bb5345d785d77c3404eb3f9eff 100644 (file)
@@ -768,6 +768,19 @@ const char *nvme_ctrl_get_host_iface(nvme_ctrl_t c)
        return c->cfg.host_iface;
 }
 
+const char *nvme_ctrl_get_ana_state(nvme_ctrl_t c, __u32 nsid)
+{
+       if (nsid != NVME_NSID_ALL) {
+               nvme_path_t p;
+
+               nvme_ctrl_for_each_path(c, p) {
+                       if (p->n && p->n->nsid == nsid)
+                               return p->ana_state;
+               }
+       }
+       return NULL;
+}
+
 struct nvme_fabrics_config *nvme_ctrl_get_config(nvme_ctrl_t c)
 {
        return &c->cfg;
index 8bd20e55e90f7969e93334482af4efafe8bb6fd9..daed3a11a027669bcc9b60adfd81be5f5e05b2ec 100644 (file)
@@ -836,6 +836,15 @@ const char *nvme_ctrl_get_host_traddr(nvme_ctrl_t c);
  */
 const char *nvme_ctrl_get_host_iface(nvme_ctrl_t c);
 
+/**
+ * nvme_ctrl_get_ana_state() - ANA state of a controller path
+ * @c:         Constroller instance
+ * @nsid:      Namespace ID to evaluate
+ *
+ * Return: ANA state of the namespace @nsid on controller @c.
+ */
+const char *nvme_ctrl_get_ana_state(nvme_ctrl_t c, __u32 nsid);
+
 /**
  * nvme_ctrl_get_dhchap_key() - Return controller key
  * @c: Controller for which the key should be set