diff mbox series

[2/2] ndctl/namespace: Suppress ENODEV when processing all namespaces.

Message ID 3905bc44eec1a7251ea67729aee9ecf4d6d33653.1595526596.git.msuchanek@suse.de (mailing list archive)
State New, archived
Headers show
Series [1/2] ndctl/namespace: skip zero namespaces when processing all namespaces. | expand

Commit Message

Michal Suchánek July 23, 2020, 5:51 p.m. UTC
When processing all namespaces and no namespaces exist user gets the
default -ENOENT. Set default rc to 0 when processing all namespaces.
This avoids confusing error message printed in addition to the message
saying 0 namespaces were affected.

Before:

 # ndctl check-namespace all
namespace0.0: namespace_check: namespace0.0: check aborted, namespace online
error checking namespaces: Device or resource busy
checked 0 namespaces
 # ndctl disable-namespace all
disabled 1 namespace
 # ndctl check-namespace all
namespace0.0: namespace_check: Unable to recover any BTT info blocks
error checking namespaces: No such device or address
checked 0 namespaces
 # ndctl destroy-namespace all
destroyed 1 namespace
 # ndctl check-namespace all
error checking namespaces: No such device or address
checked 0 namespaces
 # ndctl destroy-namespace all
error destroying namespaces: No such device or address
destroyed 0 namespaces

After:

 # ndctl check-namespace all
namespace0.0: namespace_check: namespace0.0: check aborted, namespace online
error checking namespaces: Device or resource busy
checked 0 namespaces
 # ndctl disable-namespace namespace0.0
disabled 1 namespace
 # ndctl check-namespace all
namespace0.0: namespace_check: Unable to recover any BTT info blocks
error checking namespaces: No such device or address
checked 0 namespaces
 # ndctl destroy-namespace all
destroyed 1 namespace
 # ndctl check-namespace all
checked 0 namespaces
 # ndctl destroy-namespace all
destroyed 0 namespaces
 # ndctl destroy-namespace all
destroyed 0 namespaces

Note: this does change the return value from -ENOENT to 0 in the cases
when no namespaces exist and processing all namespaces was requested.

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
---
 ndctl/namespace.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Santosh Sivaraj Aug. 28, 2020, 8:39 a.m. UTC | #1
Michal Suchanek <msuchanek@suse.de> writes:

> When processing all namespaces and no namespaces exist user gets the
> default -ENOENT. Set default rc to 0 when processing all namespaces.
> This avoids confusing error message printed in addition to the message
> saying 0 namespaces were affected.
>
> Before:
>
>  # ndctl check-namespace all
> namespace0.0: namespace_check: namespace0.0: check aborted, namespace online
> error checking namespaces: Device or resource busy
> checked 0 namespaces
>  # ndctl disable-namespace all
> disabled 1 namespace
>  # ndctl check-namespace all
> namespace0.0: namespace_check: Unable to recover any BTT info blocks
> error checking namespaces: No such device or address
> checked 0 namespaces
>  # ndctl destroy-namespace all
> destroyed 1 namespace
>  # ndctl check-namespace all
> error checking namespaces: No such device or address
> checked 0 namespaces
>  # ndctl destroy-namespace all
> error destroying namespaces: No such device or address
> destroyed 0 namespaces
>
> After:
>
>  # ndctl check-namespace all
> namespace0.0: namespace_check: namespace0.0: check aborted, namespace online
> error checking namespaces: Device or resource busy
> checked 0 namespaces
>  # ndctl disable-namespace namespace0.0
> disabled 1 namespace
>  # ndctl check-namespace all
> namespace0.0: namespace_check: Unable to recover any BTT info blocks
> error checking namespaces: No such device or address
> checked 0 namespaces
>  # ndctl destroy-namespace all
> destroyed 1 namespace
>  # ndctl check-namespace all
> checked 0 namespaces
>  # ndctl destroy-namespace all
> destroyed 0 namespaces
>  # ndctl destroy-namespace all
> destroyed 0 namespaces
>
> Note: this does change the return value from -ENOENT to 0 in the cases
> when no namespaces exist and processing all namespaces was requested.
>
> Signed-off-by: Michal Suchanek <msuchanek@suse.de>

I missed this patch and had a different approach of solving this, fiddling
around with processed and saved_rc in the end of the function. This is
cleaner.

Nit: The default return value is -ENXIO, if that matters in the commit message.

Reviewed-by: Santosh S <santosh@fossix.org>

Thanks,
Santosh

> ---
>  ndctl/namespace.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/ndctl/namespace.c b/ndctl/namespace.c
> index 3fabe4799d75..835f4076008a 100644
> --- a/ndctl/namespace.c
> +++ b/ndctl/namespace.c
> @@ -2112,6 +2112,9 @@ static int do_xaction_namespace(const char *namespace,
>  	if (!namespace && action != ACTION_CREATE)
>  		return rc;
>  
> +	if (namespace && (strcmp(namespace, "all") == 0))
> +		rc = 0;
> +
>  	if (verbose)
>  		ndctl_set_log_priority(ctx, LOG_DEBUG);
>  
> -- 
> 2.26.2
> _______________________________________________
> Linux-nvdimm mailing list -- linux-nvdimm@lists.01.org
> To unsubscribe send an email to linux-nvdimm-leave@lists.01.org
diff mbox series

Patch

diff --git a/ndctl/namespace.c b/ndctl/namespace.c
index 3fabe4799d75..835f4076008a 100644
--- a/ndctl/namespace.c
+++ b/ndctl/namespace.c
@@ -2112,6 +2112,9 @@  static int do_xaction_namespace(const char *namespace,
 	if (!namespace && action != ACTION_CREATE)
 		return rc;
 
+	if (namespace && (strcmp(namespace, "all") == 0))
+		rc = 0;
+
 	if (verbose)
 		ndctl_set_log_priority(ctx, LOG_DEBUG);