summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorMatthew Macy <[email protected]>2019-12-05 13:10:29 -0800
committerBrian Behlendorf <[email protected]>2019-12-05 13:10:29 -0800
commitf95704ca5ef37aac2dc335d878380512a7cf628c (patch)
tree304d75e90a522e8b11156ad38823709f1d70a951 /module
parent054a049841879bfa4d7a8c91fbe5c7d51864e23d (diff)
Disable EDONR on FreeBSD
FreeBSD uses its own crypto framework in-kernel which, at this time, has no EDONR implementation. Reviewed-by: Jorgen Lundman <[email protected]> Reviewed-by: Allan Jude <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Matt Macy <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #9664
Diffstat (limited to 'module')
-rw-r--r--module/zcommon/zfeature_common.c3
-rw-r--r--module/zcommon/zfs_prop.c22
-rw-r--r--module/zfs/zio_checksum.c4
3 files changed, 26 insertions, 3 deletions
diff --git a/module/zcommon/zfeature_common.c b/module/zcommon/zfeature_common.c
index e5a1aff9c..cc59c406d 100644
--- a/module/zcommon/zfeature_common.c
+++ b/module/zcommon/zfeature_common.c
@@ -421,6 +421,8 @@ zpool_feature_init(void)
skein_deps);
}
+#if !defined(__FreeBSD__)
+
{
static const spa_feature_t edonr_deps[] = {
SPA_FEATURE_EXTENSIBLE_DATASET,
@@ -432,6 +434,7 @@ zpool_feature_init(void)
ZFEATURE_FLAG_PER_DATASET, ZFEATURE_TYPE_BOOLEAN,
edonr_deps);
}
+#endif
{
static const spa_feature_t redact_books_deps[] = {
diff --git a/module/zcommon/zfs_prop.c b/module/zcommon/zfs_prop.c
index bace3f184..20f92c6a8 100644
--- a/module/zcommon/zfs_prop.c
+++ b/module/zcommon/zfs_prop.c
@@ -81,7 +81,10 @@ zfs_prop_init(void)
{ "noparity", ZIO_CHECKSUM_NOPARITY },
{ "sha512", ZIO_CHECKSUM_SHA512 },
{ "skein", ZIO_CHECKSUM_SKEIN },
+#if !defined(__FreeBSD__)
+
{ "edonr", ZIO_CHECKSUM_EDONR },
+#endif
{ NULL }
};
@@ -98,8 +101,11 @@ zfs_prop_init(void)
{ "skein", ZIO_CHECKSUM_SKEIN },
{ "skein,verify",
ZIO_CHECKSUM_SKEIN | ZIO_CHECKSUM_VERIFY },
+#if !defined(__FreeBSD__)
+
{ "edonr,verify",
ZIO_CHECKSUM_EDONR | ZIO_CHECKSUM_VERIFY },
+#endif
{ NULL }
};
@@ -297,12 +303,22 @@ zfs_prop_init(void)
zprop_register_index(ZFS_PROP_CHECKSUM, "checksum",
ZIO_CHECKSUM_DEFAULT, PROP_INHERIT, ZFS_TYPE_FILESYSTEM |
ZFS_TYPE_VOLUME,
- "on | off | fletcher2 | fletcher4 | sha256 | sha512 | "
- "skein | edonr", "CHECKSUM", checksum_table);
+#if !defined(__FreeBSD__)
+ "on | off | fletcher2 | fletcher4 | sha256 | sha512 | skein"
+ " | edonr",
+#else
+ "on | off | fletcher2 | fletcher4 | sha256 | sha512 | skein",
+#endif
+ "CHECKSUM", checksum_table);
zprop_register_index(ZFS_PROP_DEDUP, "dedup", ZIO_CHECKSUM_OFF,
PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
"on | off | verify | sha256[,verify], sha512[,verify], "
- "skein[,verify], edonr,verify", "DEDUP", dedup_table);
+#if !defined(__FreeBSD__)
+ "skein[,verify], edonr,verify",
+#else
+ "skein[,verify]",
+#endif
+ "DEDUP", dedup_table);
zprop_register_index(ZFS_PROP_COMPRESSION, "compression",
ZIO_COMPRESS_DEFAULT, PROP_INHERIT,
ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
diff --git a/module/zfs/zio_checksum.c b/module/zfs/zio_checksum.c
index 179fab5de..ab1e9494e 100644
--- a/module/zfs/zio_checksum.c
+++ b/module/zfs/zio_checksum.c
@@ -191,10 +191,12 @@ zio_checksum_info_t zio_checksum_table[ZIO_CHECKSUM_FUNCTIONS] = {
abd_checksum_skein_tmpl_init, abd_checksum_skein_tmpl_free,
ZCHECKSUM_FLAG_METADATA | ZCHECKSUM_FLAG_DEDUP |
ZCHECKSUM_FLAG_SALTED | ZCHECKSUM_FLAG_NOPWRITE, "skein"},
+#if !defined(__FreeBSD__)
{{abd_checksum_edonr_native, abd_checksum_edonr_byteswap},
abd_checksum_edonr_tmpl_init, abd_checksum_edonr_tmpl_free,
ZCHECKSUM_FLAG_METADATA | ZCHECKSUM_FLAG_SALTED |
ZCHECKSUM_FLAG_NOPWRITE, "edonr"},
+#endif
};
/*
@@ -211,8 +213,10 @@ zio_checksum_to_feature(enum zio_checksum cksum)
return (SPA_FEATURE_SHA512);
case ZIO_CHECKSUM_SKEIN:
return (SPA_FEATURE_SKEIN);
+#if !defined(__FreeBSD__)
case ZIO_CHECKSUM_EDONR:
return (SPA_FEATURE_EDONR);
+#endif
default:
return (SPA_FEATURE_NONE);
}