aboutsummaryrefslogtreecommitdiff
path: root/module/zfs/dsl_dir.c
diff options
context:
space:
mode:
authorTom Caputi <tcaputi@datto.com>2017-11-08 19:12:59 +0000
committerBrian Behlendorf <behlendorf1@llnl.gov>2018-02-02 19:37:16 +0000
commitae76f45cda0e0857f99e53959cf71c7a5d66bd8b (patch)
treee1c3cabe0971272785a442d6fb627bf6ebd07148 /module/zfs/dsl_dir.c
parent4c46b99d24a6e71b3c72462c11cb051d0930ad60 (diff)
downloadsrc-ae76f45cda0e0857f99e53959cf71c7a5d66bd8b.tar.gz
src-ae76f45cda0e0857f99e53959cf71c7a5d66bd8b.zip
Diffstat (limited to 'module/zfs/dsl_dir.c')
-rw-r--r--module/zfs/dsl_dir.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/module/zfs/dsl_dir.c b/module/zfs/dsl_dir.c
index 68791fe742f2..96e8dd62e1a6 100644
--- a/module/zfs/dsl_dir.c
+++ b/module/zfs/dsl_dir.c
@@ -37,6 +37,7 @@
#include <sys/dsl_deleg.h>
#include <sys/dmu_impl.h>
#include <sys/spa.h>
+#include <sys/spa_impl.h>
#include <sys/metaslab.h>
#include <sys/zap.h>
#include <sys/zio.h>
@@ -187,6 +188,12 @@ dsl_dir_hold_obj(dsl_pool_t *dp, uint64_t ddobj,
VERIFY0(zap_lookup(dp->dp_meta_objset,
ddobj, DD_FIELD_CRYPTO_KEY_OBJ,
sizeof (uint64_t), 1, &dd->dd_crypto_obj));
+
+ /* check for on-disk format errata */
+ if (dsl_dir_incompatible_encryption_version(dd)) {
+ dp->dp_spa->spa_errata =
+ ZPOOL_ERRATA_ZOL_6845_ENCRYPTION;
+ }
}
mutex_init(&dd->dd_lock, NULL, MUTEX_DEFAULT, NULL);