ndctl/namespace: Suppress -ENXIO when processing all namespaces. BZ: Brew: commit 07011a334fd1e4b641cdbfaf5de7500f7bdc941d Author: Michal Suchanek Date: Wed Jan 6 14:17:41 2021 +0100 ndctl/namespace: Suppress -ENXIO when processing all namespaces. When processing all namespaces and no namespaces exist user gets the default -ENXIO. 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 -ENXIO to 0 in the cases when no namespaces exist and processing all namespaces was requested. Link: https://patchwork.kernel.org/patch/11681431/ Link: https://lore.kernel.org/r/32c8cd8d2716f5e52aebea4e4d303eeb4e0550f9.1609938610.git.msuchanek@suse.de Reviewed-by: Santosh S Signed-off-by: Michal Suchanek Signed-off-by: Vishal Verma diff --git a/ndctl/namespace.c b/ndctl/namespace.c index 5e65ed5..cd822b3 100644 --- a/ndctl/namespace.c +++ b/ndctl/namespace.c @@ -2151,6 +2151,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);