|
|
4a01d4 |
ndctl/namespace: Suppress -ENXIO when processing all namespaces.
|
|
|
4a01d4 |
|
|
|
4a01d4 |
BZ:
|
|
|
4a01d4 |
Brew:
|
|
|
4a01d4 |
|
|
|
4a01d4 |
commit 07011a334fd1e4b641cdbfaf5de7500f7bdc941d
|
|
|
4a01d4 |
Author: Michal Suchanek <msuchanek@suse.de>
|
|
|
4a01d4 |
Date: Wed Jan 6 14:17:41 2021 +0100
|
|
|
4a01d4 |
|
|
|
4a01d4 |
ndctl/namespace: Suppress -ENXIO when processing all namespaces.
|
|
|
4a01d4 |
|
|
|
4a01d4 |
When processing all namespaces and no namespaces exist user gets the
|
|
|
4a01d4 |
default -ENXIO. Set default rc to 0 when processing all namespaces.
|
|
|
4a01d4 |
This avoids confusing error message printed in addition to the message
|
|
|
4a01d4 |
saying 0 namespaces were affected.
|
|
|
4a01d4 |
|
|
|
4a01d4 |
Before:
|
|
|
4a01d4 |
|
|
|
4a01d4 |
# ndctl check-namespace all
|
|
|
4a01d4 |
namespace0.0: namespace_check: namespace0.0: check aborted, namespace online
|
|
|
4a01d4 |
error checking namespaces: Device or resource busy
|
|
|
4a01d4 |
checked 0 namespaces
|
|
|
4a01d4 |
# ndctl disable-namespace all
|
|
|
4a01d4 |
disabled 1 namespace
|
|
|
4a01d4 |
# ndctl check-namespace all
|
|
|
4a01d4 |
namespace0.0: namespace_check: Unable to recover any BTT info blocks
|
|
|
4a01d4 |
error checking namespaces: No such device or address
|
|
|
4a01d4 |
checked 0 namespaces
|
|
|
4a01d4 |
# ndctl destroy-namespace all
|
|
|
4a01d4 |
destroyed 1 namespace
|
|
|
4a01d4 |
# ndctl check-namespace all
|
|
|
4a01d4 |
error checking namespaces: No such device or address
|
|
|
4a01d4 |
checked 0 namespaces
|
|
|
4a01d4 |
# ndctl destroy-namespace all
|
|
|
4a01d4 |
error destroying namespaces: No such device or address
|
|
|
4a01d4 |
destroyed 0 namespaces
|
|
|
4a01d4 |
|
|
|
4a01d4 |
After:
|
|
|
4a01d4 |
|
|
|
4a01d4 |
# ndctl check-namespace all
|
|
|
4a01d4 |
namespace0.0: namespace_check: namespace0.0: check aborted, namespace online
|
|
|
4a01d4 |
error checking namespaces: Device or resource busy
|
|
|
4a01d4 |
checked 0 namespaces
|
|
|
4a01d4 |
# ndctl disable-namespace namespace0.0
|
|
|
4a01d4 |
disabled 1 namespace
|
|
|
4a01d4 |
# ndctl check-namespace all
|
|
|
4a01d4 |
namespace0.0: namespace_check: Unable to recover any BTT info blocks
|
|
|
4a01d4 |
error checking namespaces: No such device or address
|
|
|
4a01d4 |
checked 0 namespaces
|
|
|
4a01d4 |
# ndctl destroy-namespace all
|
|
|
4a01d4 |
destroyed 1 namespace
|
|
|
4a01d4 |
# ndctl check-namespace all
|
|
|
4a01d4 |
checked 0 namespaces
|
|
|
4a01d4 |
# ndctl destroy-namespace all
|
|
|
4a01d4 |
destroyed 0 namespaces
|
|
|
4a01d4 |
# ndctl destroy-namespace all
|
|
|
4a01d4 |
destroyed 0 namespaces
|
|
|
4a01d4 |
|
|
|
4a01d4 |
Note: this does change the return value from -ENXIO to 0 in the cases
|
|
|
4a01d4 |
when no namespaces exist and processing all namespaces was requested.
|
|
|
4a01d4 |
|
|
|
4a01d4 |
Link: https://patchwork.kernel.org/patch/11681431/
|
|
|
4a01d4 |
Link: https://lore.kernel.org/r/32c8cd8d2716f5e52aebea4e4d303eeb4e0550f9.1609938610.git.msuchanek@suse.de
|
|
|
4a01d4 |
Reviewed-by: Santosh S <santosh@fossix.org>
|
|
|
4a01d4 |
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
|
|
4a01d4 |
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
|
|
|
4a01d4 |
|
|
|
4a01d4 |
diff --git a/ndctl/namespace.c b/ndctl/namespace.c
|
|
|
4a01d4 |
index 5e65ed5..cd822b3 100644
|
|
|
4a01d4 |
--- a/ndctl/namespace.c
|
|
|
4a01d4 |
+++ b/ndctl/namespace.c
|
|
|
4a01d4 |
@@ -2151,6 +2151,9 @@ static int do_xaction_namespace(const char *namespace,
|
|
|
4a01d4 |
if (!namespace && action != ACTION_CREATE)
|
|
|
4a01d4 |
return rc;
|
|
|
4a01d4 |
|
|
|
4a01d4 |
+ if (namespace && (strcmp(namespace, "all") == 0))
|
|
|
4a01d4 |
+ rc = 0;
|
|
|
4a01d4 |
+
|
|
|
4a01d4 |
if (verbose)
|
|
|
4a01d4 |
ndctl_set_log_priority(ctx, LOG_DEBUG);
|
|
|
4a01d4 |
|