mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 19:04:45 +03:00
Revert special case code from pre-hashtable nvlist era
Before a hash table was added on top of the nvlist code, there were cases where the nvlist allocation was changed from fnvlist_alloc() to nvlist_alloc() to avoid expensive NV_UNIQUE_NAME checks. Now this is no longer necessary. These changes should be reverted to be consistent with other code. There are some cases where this change will also reduce the number of iterations. Reviewed-by: Serapheim Dimitropoulos <serapheim@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Mark Maybee <mark.maybee@delphix.com> Closes #11464
This commit is contained in:
@@ -600,26 +600,21 @@ dsl_destroy_snapshots_nvl(nvlist_t *snaps, boolean_t defer,
|
||||
/*
|
||||
* lzc_destroy_snaps() is documented to take an nvlist whose
|
||||
* values "don't matter". We need to convert that nvlist to
|
||||
* one that we know can be converted to LUA. We also don't
|
||||
* care about any duplicate entries because the nvlist will
|
||||
* be converted to a LUA table which should take care of this.
|
||||
* one that we know can be converted to LUA.
|
||||
*/
|
||||
nvlist_t *snaps_normalized;
|
||||
VERIFY0(nvlist_alloc(&snaps_normalized, 0, KM_SLEEP));
|
||||
nvlist_t *snaps_normalized = fnvlist_alloc();
|
||||
for (nvpair_t *pair = nvlist_next_nvpair(snaps, NULL);
|
||||
pair != NULL; pair = nvlist_next_nvpair(snaps, pair)) {
|
||||
fnvlist_add_boolean_value(snaps_normalized,
|
||||
nvpair_name(pair), B_TRUE);
|
||||
}
|
||||
|
||||
nvlist_t *arg;
|
||||
VERIFY0(nvlist_alloc(&arg, 0, KM_SLEEP));
|
||||
nvlist_t *arg = fnvlist_alloc();
|
||||
fnvlist_add_nvlist(arg, "snaps", snaps_normalized);
|
||||
fnvlist_free(snaps_normalized);
|
||||
fnvlist_add_boolean_value(arg, "defer", defer);
|
||||
|
||||
nvlist_t *wrapper;
|
||||
VERIFY0(nvlist_alloc(&wrapper, 0, KM_SLEEP));
|
||||
nvlist_t *wrapper = fnvlist_alloc();
|
||||
fnvlist_add_nvlist(wrapper, ZCP_ARG_ARGLIST, arg);
|
||||
fnvlist_free(arg);
|
||||
|
||||
@@ -654,7 +649,7 @@ dsl_destroy_snapshots_nvl(nvlist_t *snaps, boolean_t defer,
|
||||
B_TRUE,
|
||||
0,
|
||||
zfs_lua_max_memlimit,
|
||||
nvlist_next_nvpair(wrapper, NULL), result);
|
||||
fnvlist_lookup_nvpair(wrapper, ZCP_ARG_ARGLIST), result);
|
||||
if (error != 0) {
|
||||
char *errorstr = NULL;
|
||||
(void) nvlist_lookup_string(result, ZCP_RET_ERROR, &errorstr);
|
||||
|
||||
Reference in New Issue
Block a user