summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Moeller <[email protected]>2021-01-11 12:30:33 -0500
committerGitHub <[email protected]>2021-01-11 09:30:33 -0800
commitbea3fc71ae716797088b2bcc990cdbd4fac0fa89 (patch)
treef6c728d5f15ef6e8345f47e72f9dcbf9e4b7bc57
parent2ac90457f503e84a3acf8b7c368cd8e44677f7d3 (diff)
ztest: Use fnvlist_* instead of VERIFYing nvlist_*
Simplify ztest by using fnvlist functions to verify success. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matt Ahrens <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #11441
-rw-r--r--cmd/ztest/ztest.c137
1 files changed, 65 insertions, 72 deletions
diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c
index f66772fa7..b64dab0fd 100644
--- a/cmd/ztest/ztest.c
+++ b/cmd/ztest/ztest.c
@@ -1122,11 +1122,11 @@ make_vdev_file(char *path, char *aux, char *pool, size_t size, uint64_t ashift)
(void) close(fd);
}
- VERIFY0(nvlist_alloc(&file, NV_UNIQUE_NAME, 0));
- VERIFY0(nvlist_add_string(file, ZPOOL_CONFIG_TYPE,
- draid_spare ? VDEV_TYPE_DRAID_SPARE : VDEV_TYPE_FILE));
- VERIFY0(nvlist_add_string(file, ZPOOL_CONFIG_PATH, path));
- VERIFY0(nvlist_add_uint64(file, ZPOOL_CONFIG_ASHIFT, ashift));
+ file = fnvlist_alloc();
+ fnvlist_add_string(file, ZPOOL_CONFIG_TYPE,
+ draid_spare ? VDEV_TYPE_DRAID_SPARE : VDEV_TYPE_FILE);
+ fnvlist_add_string(file, ZPOOL_CONFIG_PATH, path);
+ fnvlist_add_uint64(file, ZPOOL_CONFIG_ASHIFT, ashift);
umem_free(pathbuf, MAXPATHLEN);
return (file);
@@ -1146,13 +1146,12 @@ make_vdev_raid(char *path, char *aux, char *pool, size_t size,
for (c = 0; c < r; c++)
child[c] = make_vdev_file(path, aux, pool, size, ashift);
- VERIFY0(nvlist_alloc(&raid, NV_UNIQUE_NAME, 0));
- VERIFY0(nvlist_add_string(raid, ZPOOL_CONFIG_TYPE,
- ztest_opts.zo_raid_type));
- VERIFY0(nvlist_add_uint64(raid, ZPOOL_CONFIG_NPARITY,
- ztest_opts.zo_raid_parity));
- VERIFY0(nvlist_add_nvlist_array(raid, ZPOOL_CONFIG_CHILDREN,
- child, r));
+ raid = fnvlist_alloc();
+ fnvlist_add_string(raid, ZPOOL_CONFIG_TYPE,
+ ztest_opts.zo_raid_type);
+ fnvlist_add_uint64(raid, ZPOOL_CONFIG_NPARITY,
+ ztest_opts.zo_raid_parity);
+ fnvlist_add_nvlist_array(raid, ZPOOL_CONFIG_CHILDREN, child, r);
if (strcmp(ztest_opts.zo_raid_type, VDEV_TYPE_DRAID) == 0) {
uint64_t ndata = ztest_opts.zo_draid_data;
@@ -1176,7 +1175,7 @@ make_vdev_raid(char *path, char *aux, char *pool, size_t size,
}
for (c = 0; c < r; c++)
- nvlist_free(child[c]);
+ fnvlist_free(child[c]);
umem_free(child, r * sizeof (nvlist_t *));
@@ -1198,14 +1197,12 @@ make_vdev_mirror(char *path, char *aux, char *pool, size_t size,
for (c = 0; c < m; c++)
child[c] = make_vdev_raid(path, aux, pool, size, ashift, r);
- VERIFY(nvlist_alloc(&mirror, NV_UNIQUE_NAME, 0) == 0);
- VERIFY(nvlist_add_string(mirror, ZPOOL_CONFIG_TYPE,
- VDEV_TYPE_MIRROR) == 0);
- VERIFY(nvlist_add_nvlist_array(mirror, ZPOOL_CONFIG_CHILDREN,
- child, m) == 0);
+ mirror = fnvlist_alloc();
+ fnvlist_add_string(mirror, ZPOOL_CONFIG_TYPE, VDEV_TYPE_MIRROR);
+ fnvlist_add_nvlist_array(mirror, ZPOOL_CONFIG_CHILDREN, child, m);
for (c = 0; c < m; c++)
- nvlist_free(child[c]);
+ fnvlist_free(child[c]);
umem_free(child, m * sizeof (nvlist_t *));
@@ -1229,23 +1226,22 @@ make_vdev_root(char *path, char *aux, char *pool, size_t size, uint64_t ashift,
for (c = 0; c < t; c++) {
child[c] = make_vdev_mirror(path, aux, pool, size, ashift,
r, m);
- VERIFY(nvlist_add_uint64(child[c], ZPOOL_CONFIG_IS_LOG,
- log) == 0);
+ fnvlist_add_uint64(child[c], ZPOOL_CONFIG_IS_LOG, log);
if (class != NULL && class[0] != '\0') {
ASSERT(m > 1 || log); /* expecting a mirror */
- VERIFY(nvlist_add_string(child[c],
- ZPOOL_CONFIG_ALLOCATION_BIAS, class) == 0);
+ fnvlist_add_string(child[c],
+ ZPOOL_CONFIG_ALLOCATION_BIAS, class);
}
}
- VERIFY(nvlist_alloc(&root, NV_UNIQUE_NAME, 0) == 0);
- VERIFY(nvlist_add_string(root, ZPOOL_CONFIG_TYPE, VDEV_TYPE_ROOT) == 0);
- VERIFY(nvlist_add_nvlist_array(root, aux ? aux : ZPOOL_CONFIG_CHILDREN,
- child, t) == 0);
+ root = fnvlist_alloc();
+ fnvlist_add_string(root, ZPOOL_CONFIG_TYPE, VDEV_TYPE_ROOT);
+ fnvlist_add_nvlist_array(root, aux ? aux : ZPOOL_CONFIG_CHILDREN,
+ child, t);
for (c = 0; c < t; c++)
- nvlist_free(child[c]);
+ fnvlist_free(child[c]);
umem_free(child, t * sizeof (nvlist_t *));
@@ -1402,12 +1398,12 @@ ztest_spa_prop_set_uint64(zpool_prop_t prop, uint64_t value)
nvlist_t *props = NULL;
int error;
- VERIFY(nvlist_alloc(&props, NV_UNIQUE_NAME, 0) == 0);
- VERIFY(nvlist_add_uint64(props, zpool_prop_to_name(prop), value) == 0);
+ props = fnvlist_alloc();
+ fnvlist_add_uint64(props, zpool_prop_to_name(prop), value);
error = spa_prop_set(spa, props);
- nvlist_free(props);
+ fnvlist_free(props);
if (error == ENOSPC) {
ztest_record_enospc(FTAG);
@@ -2817,7 +2813,7 @@ ztest_spa_create_destroy(ztest_ds_t *zd, uint64_t id)
nvroot = make_vdev_root("/dev/bogus", NULL, NULL, 0, 0, NULL, 0, 0, 1);
VERIFY3U(ENOENT, ==,
spa_create("ztest_bad_file", nvroot, NULL, NULL, NULL));
- nvlist_free(nvroot);
+ fnvlist_free(nvroot);
/*
* Attempt to create using a bad mirror.
@@ -2825,7 +2821,7 @@ ztest_spa_create_destroy(ztest_ds_t *zd, uint64_t id)
nvroot = make_vdev_root("/dev/bogus", NULL, NULL, 0, 0, NULL, 0, 2, 1);
VERIFY3U(ENOENT, ==,
spa_create("ztest_bad_mirror", nvroot, NULL, NULL, NULL));
- nvlist_free(nvroot);
+ fnvlist_free(nvroot);
/*
* Attempt to create an existing pool. It shouldn't matter
@@ -2835,7 +2831,7 @@ ztest_spa_create_destroy(ztest_ds_t *zd, uint64_t id)
nvroot = make_vdev_root("/dev/bogus", NULL, NULL, 0, 0, NULL, 0, 0, 1);
VERIFY3U(EEXIST, ==,
spa_create(zo->zo_pool, nvroot, NULL, NULL, NULL));
- nvlist_free(nvroot);
+ fnvlist_free(nvroot);
/*
* We open a reference to the spa and then we try to export it
@@ -3146,7 +3142,7 @@ ztest_vdev_add_remove(ztest_ds_t *zd, uint64_t id)
1);
error = spa_vdev_add(spa, nvroot);
- nvlist_free(nvroot);
+ fnvlist_free(nvroot);
switch (error) {
case 0:
@@ -3208,7 +3204,7 @@ ztest_vdev_class_add(ztest_ds_t *zd, uint64_t id)
class, ztest_opts.zo_raid_children, zs->zs_mirrors, 1);
error = spa_vdev_add(spa, nvroot);
- nvlist_free(nvroot);
+ fnvlist_free(nvroot);
if (error == ENOSPC)
ztest_record_enospc("spa_vdev_add");
@@ -3321,7 +3317,7 @@ ztest_vdev_aux_add_remove(ztest_ds_t *zd, uint64_t id)
default:
fatal(0, "spa_vdev_add(%p) = %d", nvroot, error);
}
- nvlist_free(nvroot);
+ fnvlist_free(nvroot);
} else {
/*
* Remove an existing device. Sometimes, dirty its
@@ -3383,12 +3379,11 @@ ztest_split_pool(ztest_ds_t *zd, uint64_t id)
/* generate a config from the existing config */
mutex_enter(&spa->spa_props_lock);
- VERIFY(nvlist_lookup_nvlist(spa->spa_config, ZPOOL_CONFIG_VDEV_TREE,
- &tree) == 0);
+ tree = fnvlist_lookup_nvlist(spa->spa_config, ZPOOL_CONFIG_VDEV_TREE);
mutex_exit(&spa->spa_props_lock);
- VERIFY(nvlist_lookup_nvlist_array(tree, ZPOOL_CONFIG_CHILDREN, &child,
- &children) == 0);
+ VERIFY0(nvlist_lookup_nvlist_array(tree, ZPOOL_CONFIG_CHILDREN,
+ &child, &children));
schild = malloc(rvd->vdev_children * sizeof (nvlist_t *));
for (c = 0; c < children; c++) {
@@ -3397,37 +3392,35 @@ ztest_split_pool(ztest_ds_t *zd, uint64_t id)
uint_t mchildren;
if (tvd->vdev_islog || tvd->vdev_ops == &vdev_hole_ops) {
- VERIFY(nvlist_alloc(&schild[schildren], NV_UNIQUE_NAME,
- 0) == 0);
- VERIFY(nvlist_add_string(schild[schildren],
- ZPOOL_CONFIG_TYPE, VDEV_TYPE_HOLE) == 0);
- VERIFY(nvlist_add_uint64(schild[schildren],
- ZPOOL_CONFIG_IS_HOLE, 1) == 0);
+ schild[schildren] = fnvlist_alloc();
+ fnvlist_add_string(schild[schildren],
+ ZPOOL_CONFIG_TYPE, VDEV_TYPE_HOLE);
+ fnvlist_add_uint64(schild[schildren],
+ ZPOOL_CONFIG_IS_HOLE, 1);
if (lastlogid == 0)
lastlogid = schildren;
++schildren;
continue;
}
lastlogid = 0;
- VERIFY(nvlist_lookup_nvlist_array(child[c],
- ZPOOL_CONFIG_CHILDREN, &mchild, &mchildren) == 0);
- VERIFY(nvlist_dup(mchild[0], &schild[schildren++], 0) == 0);
+ VERIFY0(nvlist_lookup_nvlist_array(child[c],
+ ZPOOL_CONFIG_CHILDREN, &mchild, &mchildren));
+ schild[schildren++] = fnvlist_dup(mchild[0]);
}
/* OK, create a config that can be used to split */
- VERIFY(nvlist_alloc(&split, NV_UNIQUE_NAME, 0) == 0);
- VERIFY(nvlist_add_string(split, ZPOOL_CONFIG_TYPE,
- VDEV_TYPE_ROOT) == 0);
- VERIFY(nvlist_add_nvlist_array(split, ZPOOL_CONFIG_CHILDREN, schild,
- lastlogid != 0 ? lastlogid : schildren) == 0);
+ split = fnvlist_alloc();
+ fnvlist_add_string(split, ZPOOL_CONFIG_TYPE, VDEV_TYPE_ROOT);
+ fnvlist_add_nvlist_array(split, ZPOOL_CONFIG_CHILDREN, schild,
+ lastlogid != 0 ? lastlogid : schildren);
- VERIFY(nvlist_alloc(&config, NV_UNIQUE_NAME, 0) == 0);
- VERIFY(nvlist_add_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, split) == 0);
+ config = fnvlist_alloc();
+ fnvlist_add_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, split);
for (c = 0; c < schildren; c++)
- nvlist_free(schild[c]);
+ fnvlist_free(schild[c]);
free(schild);
- nvlist_free(split);
+ fnvlist_free(split);
spa_config_exit(spa, SCL_VDEV, FTAG);
@@ -3435,7 +3428,7 @@ ztest_split_pool(ztest_ds_t *zd, uint64_t id)
error = spa_vdev_split_mirror(spa, "splitp", config, NULL, B_FALSE);
(void) pthread_rwlock_unlock(&ztest_name_lock);
- nvlist_free(config);
+ fnvlist_free(config);
if (error == 0) {
(void) printf("successful split - results:\n");
@@ -3658,7 +3651,7 @@ ztest_vdev_attach_detach(ztest_ds_t *zd, uint64_t id)
error = spa_vdev_attach(spa, oldguid, root, replacing, rebuilding);
- nvlist_free(root);
+ fnvlist_free(root);
/*
* If our parent was the replacing vdev, but the replace completed,
@@ -5713,7 +5706,7 @@ ztest_spa_prop_get_set(ztest_ds_t *zd, uint64_t id)
if (ztest_opts.zo_verbose >= 6)
dump_nvlist(props, 4);
- nvlist_free(props);
+ fnvlist_free(props);
(void) pthread_rwlock_unlock(&ztest_name_lock);
}
@@ -6702,7 +6695,7 @@ ztest_spa_import_export(char *oldname, char *newname)
*/
newconfig = spa_tryimport(config);
ASSERT(newconfig != NULL);
- nvlist_free(newconfig);
+ fnvlist_free(newconfig);
/*
* Import it under the new name.
@@ -6738,7 +6731,7 @@ ztest_spa_import_export(char *oldname, char *newname)
ASSERT(pool_guid == spa_guid(spa));
spa_close(spa, FTAG);
- nvlist_free(config);
+ fnvlist_free(config);
}
static void
@@ -7452,13 +7445,13 @@ make_random_props(void)
{
nvlist_t *props;
- VERIFY0(nvlist_alloc(&props, NV_UNIQUE_NAME, 0));
+ props = fnvlist_alloc();
if (ztest_random(2) == 0)
return (props);
- VERIFY0(nvlist_add_uint64(props,
- zpool_prop_to_name(ZPOOL_PROP_AUTOREPLACE), 1));
+ fnvlist_add_uint64(props,
+ zpool_prop_to_name(ZPOOL_PROP_AUTOREPLACE), 1);
return (props);
}
@@ -7496,9 +7489,9 @@ ztest_init(ztest_shared_t *zs)
* in which case ztest_fault_inject() temporarily takes away
* the only valid replica.
*/
- VERIFY0(nvlist_add_uint64(props,
+ fnvlist_add_uint64(props,
zpool_prop_to_name(ZPOOL_PROP_FAILUREMODE),
- MAXFAULTS(zs) ? ZIO_FAILURE_MODE_PANIC : ZIO_FAILURE_MODE_WAIT));
+ MAXFAULTS(zs) ? ZIO_FAILURE_MODE_PANIC : ZIO_FAILURE_MODE_WAIT);
for (i = 0; i < SPA_FEATURES; i++) {
char *buf;
@@ -7513,13 +7506,13 @@ ztest_init(ztest_shared_t *zs)
VERIFY3S(-1, !=, asprintf(&buf, "feature@%s",
spa_feature_table[i].fi_uname));
- VERIFY3U(0, ==, nvlist_add_uint64(props, buf, 0));
+ fnvlist_add_uint64(props, buf, 0);
free(buf);
}
VERIFY0(spa_create(ztest_opts.zo_pool, nvroot, props, NULL, NULL));
- nvlist_free(nvroot);
- nvlist_free(props);
+ fnvlist_free(nvroot);
+ fnvlist_free(props);
VERIFY3U(0, ==, spa_open(ztest_opts.zo_pool, &spa, FTAG));
zs->zs_metaslab_sz =