summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2014-10-30 13:17:33 -0700
committerBrian Behlendorf <[email protected]>2015-01-28 11:12:31 -0800
commit6466b61db6b4def6b077882ebbd4c3e83e917613 (patch)
treea245c9cd08db4c8fb33fae93580f684e7a650954 /lib
parenta485efc4cd7589ec7993aee4b0746a05f42409d5 (diff)
Make `zpool import -d|-c` behave consistently
When importing pools with zpool import -aN there is inconsistent behavior between '-d /dev/disk/by-id' (or another path) and '-c /etc/zfs/zpool.cache'. The difference in behavior is caused by zpool_find_import_cached() returning an empty nvlist_t when there are no pools to import but zpool_find_import_impl() returns NULL for the same situation. The behavior of zpool_find_import_cached() is arguably more correct because it allows returning NULL to be used for an error case and not an empty set. This change resolves the issue by updating get_configs() such that it returns an empty set instead of NULL when no config is found. The updated behavior will now always return 0 for this case. $ zpool import -aN; echo $? no pools available to import 0 $ zpool import -aN -d /var/tmp/; echo $? no pools available to import 0 $ zpool import -aN -c /etc/zfs/zpool.cache; echo $? no pools available to import 0 Signed-off-by: Brian Behlendorf <[email protected]> Closes #2080
Diffstat (limited to 'lib')
-rw-r--r--lib/libzfs/libzfs_import.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c
index e71cbb86b..301b08883 100644
--- a/lib/libzfs/libzfs_import.c
+++ b/lib/libzfs/libzfs_import.c
@@ -444,7 +444,6 @@ get_configs(libzfs_handle_t *hdl, pool_list_t *pl, boolean_t active_ok)
boolean_t isactive;
uint64_t hostid;
nvlist_t *nvl;
- boolean_t found_one = B_FALSE;
boolean_t valid_top_config = B_FALSE;
if (nvlist_alloc(&ret, 0, 0) != 0)
@@ -813,16 +812,10 @@ add_pool:
if (nvlist_add_nvlist(ret, name, config) != 0)
goto nomem;
- found_one = B_TRUE;
nvlist_free(config);
config = NULL;
}
- if (!found_one) {
- nvlist_free(ret);
- ret = NULL;
- }
-
return (ret);
nomem: