* [PATCH ndctl] namespace-action: Don't act on any seed namespaces
@ 2020-07-05 4:15 Santosh Sivaraj
2020-07-06 9:29 ` Harish
0 siblings, 1 reply; 2+ messages in thread
From: Santosh Sivaraj @ 2020-07-05 4:15 UTC (permalink / raw)
To: linux-nvdimm, Dan Williams, Vishal Verma; +Cc: Aneesh Kumar K.V, harish
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 <santosh@fossix.org>
---
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 -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH ndctl] namespace-action: Don't act on any seed namespaces
2020-07-05 4:15 [PATCH ndctl] namespace-action: Don't act on any seed namespaces Santosh Sivaraj
@ 2020-07-06 9:29 ` Harish
0 siblings, 0 replies; 2+ messages in thread
From: Harish @ 2020-07-06 9:29 UTC (permalink / raw)
To: Santosh Sivaraj, linux-nvdimm, Dan Williams, Vishal Verma
Cc: Aneesh Kumar K.V
Tested-by: Harish <harish@linux.ibm.com>
- Harish
On 7/5/20 9:45 AM, Santosh Sivaraj wrote:
> 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 <santosh@fossix.org>
> ---
> 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:
_______________________________________________
Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-07-06 9:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-05 4:15 [PATCH ndctl] namespace-action: Don't act on any seed namespaces Santosh Sivaraj
2020-07-06 9:29 ` Harish
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).