Remove VERIFY from dsl_dataset_crypt_stats()

This patch fixes an issue where dsl_dataset_crypt_stats() would
VERIFY that it was able to hold the encryption root. This function
should instead silently continue without populating the related
field in the nvlist, as is the convention for this code.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #8976
This commit is contained in:
Tom Caputi 2019-07-05 19:53:14 -04:00 committed by Tony Hutter
parent 14a11bf2f6
commit 1f72a18f59

View File

@ -2624,11 +2624,13 @@ dsl_dataset_crypt_stats(dsl_dataset_t *ds, nvlist_t *nv)
} }
if (dsl_dir_get_encryption_root_ddobj(dd, &intval) == 0) { if (dsl_dir_get_encryption_root_ddobj(dd, &intval) == 0) {
VERIFY0(dsl_dir_hold_obj(dd->dd_pool, intval, NULL, FTAG, if (dsl_dir_hold_obj(dd->dd_pool, intval, NULL, FTAG,
&enc_root)); &enc_root) == 0) {
dsl_dir_name(enc_root, buf); dsl_dir_name(enc_root, buf);
dsl_dir_rele(enc_root, FTAG); dsl_dir_rele(enc_root, FTAG);
dsl_prop_nvlist_add_string(nv, ZFS_PROP_ENCRYPTION_ROOT, buf); dsl_prop_nvlist_add_string(nv,
ZFS_PROP_ENCRYPTION_ROOT, buf);
}
} }
} }