Let validate_namespace_options() check that the region is enabled before
allowing namespace creation to proceed.

Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
---
 ndctl/builtin-xaction-namespace.c |   17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/ndctl/builtin-xaction-namespace.c 
b/ndctl/builtin-xaction-namespace.c
index 2c4f85f5e4ac..66e61c531fa6 100644
--- a/ndctl/builtin-xaction-namespace.c
+++ b/ndctl/builtin-xaction-namespace.c
@@ -391,6 +391,12 @@ static int validate_namespace_options(struct ndctl_region 
*region,
 
        memset(p, 0, sizeof(*p));
 
+       if (!ndctl_region_is_enabled(region)) {
+               debug("%s: disabled, skipping...\n",
+                               ndctl_region_get_devname(region));
+               return -EAGAIN;
+       }
+
        if (param.size)
                p->size = parse_size64(param.size);
        else if (ndns)
@@ -539,9 +545,11 @@ static int namespace_create(struct ndctl_region *region)
        unsigned long long available;
        struct ndctl_namespace *ndns;
        struct parsed_parameters p;
+       int rc;
 
-       if (validate_namespace_options(region, NULL, &p))
-               return -EINVAL;
+       rc = validate_namespace_options(region, NULL, &p);
+       if (rc)
+               return rc;
 
        if (ndctl_region_get_ro(region)) {
                debug("%s: read-only, inelligible for namespace creation\n",
@@ -685,8 +693,9 @@ static int namespace_reconfig(struct ndctl_region *region,
        struct parsed_parameters p;
        int rc;
 
-       if (validate_namespace_options(region, ndns, &p))
-               return -EINVAL;
+       rc = validate_namespace_options(region, ndns, &p);
+       if (rc)
+               return rc;
 
        rc = namespace_destroy(region, ndns);
        if (rc)

_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to