Catch seed namespaces early on. This will prevent checking for sizes in enable, disable and destroy namespace code path, which in turn prevents the inconsistent reporting in count of enabled/disabled namespaces.
Signed-off-by: Santosh Sivaraj <[email protected]> --- ndctl/lib/libndctl.c | 5 ----- ndctl/namespace.c | 14 ++------------ 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/ndctl/lib/libndctl.c b/ndctl/lib/libndctl.c index ee737cb..d0599f7 100644 --- a/ndctl/lib/libndctl.c +++ b/ndctl/lib/libndctl.c @@ -4130,16 +4130,11 @@ NDCTL_EXPORT int ndctl_namespace_enable(struct ndctl_namespace *ndns) const char *devname = ndctl_namespace_get_devname(ndns); struct ndctl_ctx *ctx = ndctl_namespace_get_ctx(ndns); struct ndctl_region *region = ndns->region; - unsigned long long size = ndctl_namespace_get_size(ndns); int rc; if (ndctl_namespace_is_enabled(ndns)) return 0; - /* Don't try to enable idle namespace (no capacity allocated) */ - if (size == 0) - return -ENXIO; - rc = ndctl_bind(ctx, ndns->module, devname); /* diff --git a/ndctl/namespace.c b/ndctl/namespace.c index 0550580..5a086d0 100644 --- a/ndctl/namespace.c +++ b/ndctl/namespace.c @@ -1102,7 +1102,6 @@ static int namespace_destroy(struct ndctl_region *region, struct ndctl_namespace *ndns) { const char *devname = ndctl_namespace_get_devname(ndns); - unsigned long long size; bool did_zero = false; int rc; @@ -1147,19 +1146,9 @@ static int namespace_destroy(struct ndctl_region *region, goto out; } - size = ndctl_namespace_get_size(ndns); - rc = ndctl_namespace_delete(ndns); if (rc) debug("%s: failed to reclaim\n", devname); - - /* - * Don't report a destroyed namespace when no capacity was - * allocated. - */ - if (size == 0 && rc == 0) - rc = 1; - out: return rc; } @@ -2128,8 +2117,9 @@ static int do_xaction_namespace(const char *namespace, ndctl_namespace_foreach_safe(region, ndns, _n) { ndns_name = ndctl_namespace_get_devname(ndns); - if (strcmp(namespace, "all") != 0 + if ((strcmp(namespace, "all") != 0 && strcmp(namespace, ndns_name) != 0) + || ndctl_namespace_get_size(ndns) == 0) continue; switch (action) { case ACTION_DISABLE: -- 2.26.2 _______________________________________________ Linux-nvdimm mailing list -- [email protected] To unsubscribe send an email to [email protected]
