mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
Replay logs before starting ztest workers
This patch ensures that logs are replayed on all datasets prior to starting ztest workers. This ensures that the call to vdev_offline() a log device in ztest_fault_inject() will not fail due to the log device being required for replay. This patch also fixes a small issue found during testing where spa_keystore_load_wkey() does not check that the dataset specified is an encryption root. This check was present in libzfs, however. Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tom Caputi <tcaputi@datto.com> Closes #8084
This commit is contained in:
committed by
Brian Behlendorf
parent
ac53e50f79
commit
f44ad9297d
@@ -758,7 +758,7 @@ spa_keystore_load_wkey(const char *dsname, dsl_crypto_params_t *dcp,
|
||||
dsl_crypto_key_t *dck = NULL;
|
||||
dsl_wrapping_key_t *wkey = dcp->cp_wkey;
|
||||
dsl_pool_t *dp = NULL;
|
||||
uint64_t keyformat, salt, iters;
|
||||
uint64_t rddobj, keyformat, salt, iters;
|
||||
|
||||
/*
|
||||
* We don't validate the wrapping key's keyformat, salt, or iters
|
||||
@@ -775,7 +775,7 @@ spa_keystore_load_wkey(const char *dsname, dsl_crypto_params_t *dcp,
|
||||
goto error;
|
||||
|
||||
if (!spa_feature_is_enabled(dp->dp_spa, SPA_FEATURE_ENCRYPTION)) {
|
||||
ret = (SET_ERROR(ENOTSUP));
|
||||
ret = SET_ERROR(ENOTSUP);
|
||||
goto error;
|
||||
}
|
||||
|
||||
@@ -786,6 +786,13 @@ spa_keystore_load_wkey(const char *dsname, dsl_crypto_params_t *dcp,
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* confirm that dd is the encryption root */
|
||||
ret = dsl_dir_get_encryption_root_ddobj(dd, &rddobj);
|
||||
if (ret != 0 || rddobj != dd->dd_object) {
|
||||
ret = SET_ERROR(EINVAL);
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* initialize the wkey's ddobj */
|
||||
wkey->wk_ddobj = dd->dd_object;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user