diff options
author | Tom Caputi <tcaputi@datto.com> | 2019-10-30 18:27:28 +0000 |
---|---|---|
committer | Brian Behlendorf <behlendorf1@llnl.gov> | 2019-10-30 18:27:28 +0000 |
commit | bae11ba8dc1dd992643dd0ab0b5cc3b3cc197fe9 (patch) | |
tree | 2916425363affd7edb4862b81ebff1afa539a7df /module/zfs/dsl_crypt.c | |
parent | d46f0deb035bd26840dc6284fc6e1bb392097c92 (diff) | |
download | src-bae11ba8dc1dd992643dd0ab0b5cc3b3cc197fe9.tar.gz src-bae11ba8dc1dd992643dd0ab0b5cc3b3cc197fe9.zip |
Diffstat (limited to 'module/zfs/dsl_crypt.c')
-rw-r--r-- | module/zfs/dsl_crypt.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/module/zfs/dsl_crypt.c b/module/zfs/dsl_crypt.c index 1545af53af70..162a3613c282 100644 --- a/module/zfs/dsl_crypt.c +++ b/module/zfs/dsl_crypt.c @@ -1430,6 +1430,7 @@ spa_keystore_change_key_sync_impl(uint64_t rddobj, uint64_t ddobj, uint64_t new_rddobj, dsl_wrapping_key_t *wkey, boolean_t skip, dmu_tx_t *tx) { + int ret; zap_cursor_t *zc; zap_attribute_t *za; dsl_pool_t *dp = dmu_tx_pool(tx); @@ -1448,12 +1449,15 @@ spa_keystore_change_key_sync_impl(uint64_t rddobj, uint64_t ddobj, return; } + ret = dsl_dir_get_encryption_root_ddobj(dd, &curr_rddobj); + VERIFY(ret == 0 || ret == ENOENT); + /* * Stop recursing if this dsl dir didn't inherit from the root * or if this dd is a clone. */ - VERIFY0(dsl_dir_get_encryption_root_ddobj(dd, &curr_rddobj)); - if (!skip && (curr_rddobj != rddobj || dsl_dir_is_clone(dd))) { + if (ret == ENOENT || + (!skip && (curr_rddobj != rddobj || dsl_dir_is_clone(dd)))) { dsl_dir_rele(dd, FTAG); return; } |