Skip to content

Commit 80f4460

Browse files
rincebraintonyhutter
authored andcommitted
Enable edonr in FreeBSD
The code is integrated, builds fine, runs fine, there's not really any reason not to. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Ryan Moeller <[email protected]> Reviewed-by: Allan Jude <[email protected]> Reviewed-by: Tony Nguyen <[email protected]> Signed-off-by: Rich Ercolani <[email protected]> Closes openzfs#12735
1 parent f942655 commit 80f4460

File tree

13 files changed

+14
-57
lines changed

13 files changed

+14
-57
lines changed

include/sys/zio.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,7 @@ enum zio_checksum {
8888
ZIO_CHECKSUM_NOPARITY,
8989
ZIO_CHECKSUM_SHA512,
9090
ZIO_CHECKSUM_SKEIN,
91-
#if !defined(__FreeBSD__)
9291
ZIO_CHECKSUM_EDONR,
93-
#endif
9492
ZIO_CHECKSUM_FUNCTIONS
9593
};
9694

man/man7/zfsprops.7

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -771,10 +771,6 @@ The
771771
and
772772
.Sy edonr
773773
checksum algorithms require enabling the appropriate features on the pool.
774-
.Fx
775-
does not support the
776-
.Sy edonr
777-
algorithm.
778774
.Pp
779775
Please see
780776
.Xr zpool-features 7

man/man7/zpool-features.7

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -436,10 +436,6 @@ in ZFS, which means that the checksum is pre-seeded with a secret
436436
to be checksummed.
437437
Thus the produced checksums are unique to a given pool,
438438
preventing hash collision attacks on systems with dedup.
439-
.Pp
440-
.checksum-spiel edonr
441-
.Pp
442-
.Fx does not support the Sy edonr No feature.
443439
.
444440
.feature com.delphix embedded_data no
445441
This feature improves the performance and compression ratio of

module/Makefile.bsd

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ KMOD= openzfs
1212
.PATH: ${SRCDIR}/avl \
1313
${SRCDIR}/lua \
1414
${SRCDIR}/nvpair \
15+
${SRCDIR}/icp/algs/edonr \
1516
${SRCDIR}/os/freebsd/spl \
1617
${SRCDIR}/os/freebsd/zfs \
1718
${SRCDIR}/unicode \
@@ -73,6 +74,9 @@ SRCS= vnode_if.h device_if.h bus_if.h
7374
# avl
7475
SRCS+= avl.c
7576

77+
# icp
78+
SRCS+= edonr.c
79+
7680
#lua
7781
SRCS+= lapi.c \
7882
lauxlib.c \
@@ -219,6 +223,7 @@ SRCS+= abd.c \
219223
dsl_scan.c \
220224
dsl_synctask.c \
221225
dsl_userhold.c \
226+
edonr_zfs.c \
222227
fm.c \
223228
gzip.c \
224229
lzjb.c \
@@ -345,6 +350,7 @@ CFLAGS.dmu_traverse.c= -Wno-cast-qual
345350
CFLAGS.dsl_dir.c= -Wno-cast-qual
346351
CFLAGS.dsl_deadlist.c= -Wno-cast-qual
347352
CFLAGS.dsl_prop.c= -Wno-cast-qual
353+
CFLAGS.edonr.c=-Wno-cast-qual
348354
CFLAGS.fm.c= -Wno-cast-qual
349355
CFLAGS.lz4.c= -Wno-cast-qual
350356
CFLAGS.spa.c= -Wno-cast-qual

module/zcommon/zfeature_common.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,12 +227,8 @@ zfs_mod_supported_feature(const char *name)
227227
* tree, but this has not been done yet. Therefore, we return
228228
* that all features except edonr are supported.
229229
*/
230-
#if defined(__FreeBSD__)
231-
if (strcmp(name, "org.illumos:edonr") == 0)
232-
return (B_FALSE);
233-
else
234-
return (B_TRUE);
235-
#elif defined(_KERNEL) || defined(LIB_ZPOOL_BUILD)
230+
231+
#if defined(_KERNEL) || defined(LIB_ZPOOL_BUILD) || defined(__FreeBSD__)
236232
return (B_TRUE);
237233
#else
238234
return (zfs_mod_supported(ZFS_SYSFS_POOL_FEATURES, name));

module/zcommon/zfs_prop.c

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ zfs_prop_init(void)
8383
{ "noparity", ZIO_CHECKSUM_NOPARITY },
8484
{ "sha512", ZIO_CHECKSUM_SHA512 },
8585
{ "skein", ZIO_CHECKSUM_SKEIN },
86-
#if !defined(__FreeBSD__)
87-
8886
{ "edonr", ZIO_CHECKSUM_EDONR },
89-
#endif
9087
{ NULL }
9188
};
9289

@@ -103,11 +100,8 @@ zfs_prop_init(void)
103100
{ "skein", ZIO_CHECKSUM_SKEIN },
104101
{ "skein,verify",
105102
ZIO_CHECKSUM_SKEIN | ZIO_CHECKSUM_VERIFY },
106-
#if !defined(__FreeBSD__)
107-
108103
{ "edonr,verify",
109104
ZIO_CHECKSUM_EDONR | ZIO_CHECKSUM_VERIFY },
110-
#endif
111105
{ NULL }
112106
};
113107

@@ -396,21 +390,13 @@ zfs_prop_init(void)
396390
zprop_register_index(ZFS_PROP_CHECKSUM, "checksum",
397391
ZIO_CHECKSUM_DEFAULT, PROP_INHERIT, ZFS_TYPE_FILESYSTEM |
398392
ZFS_TYPE_VOLUME,
399-
#if !defined(__FreeBSD__)
400393
"on | off | fletcher2 | fletcher4 | sha256 | sha512 | skein"
401394
" | edonr",
402-
#else
403-
"on | off | fletcher2 | fletcher4 | sha256 | sha512 | skein",
404-
#endif
405395
"CHECKSUM", checksum_table);
406396
zprop_register_index(ZFS_PROP_DEDUP, "dedup", ZIO_CHECKSUM_OFF,
407397
PROP_INHERIT, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME,
408398
"on | off | verify | sha256[,verify] | sha512[,verify] | "
409-
#if !defined(__FreeBSD__)
410399
"skein[,verify] | edonr,verify",
411-
#else
412-
"skein[,verify]",
413-
#endif
414400
"DEDUP", dedup_table);
415401
zprop_register_index(ZFS_PROP_COMPRESSION, "compression",
416402
ZIO_COMPRESS_DEFAULT, PROP_INHERIT,

module/zfs/zio_checksum.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,12 +191,10 @@ zio_checksum_info_t zio_checksum_table[ZIO_CHECKSUM_FUNCTIONS] = {
191191
abd_checksum_skein_tmpl_init, abd_checksum_skein_tmpl_free,
192192
ZCHECKSUM_FLAG_METADATA | ZCHECKSUM_FLAG_DEDUP |
193193
ZCHECKSUM_FLAG_SALTED | ZCHECKSUM_FLAG_NOPWRITE, "skein"},
194-
#if !defined(__FreeBSD__)
195194
{{abd_checksum_edonr_native, abd_checksum_edonr_byteswap},
196195
abd_checksum_edonr_tmpl_init, abd_checksum_edonr_tmpl_free,
197196
ZCHECKSUM_FLAG_METADATA | ZCHECKSUM_FLAG_SALTED |
198197
ZCHECKSUM_FLAG_NOPWRITE, "edonr"},
199-
#endif
200198
};
201199

202200
/*
@@ -213,10 +211,8 @@ zio_checksum_to_feature(enum zio_checksum cksum)
213211
return (SPA_FEATURE_SHA512);
214212
case ZIO_CHECKSUM_SKEIN:
215213
return (SPA_FEATURE_SKEIN);
216-
#if !defined(__FreeBSD__)
217214
case ZIO_CHECKSUM_EDONR:
218215
return (SPA_FEATURE_EDONR);
219-
#endif
220216
default:
221217
return (SPA_FEATURE_NONE);
222218
}

tests/runfiles/common.run

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ tests = ['tst.destroy_fs', 'tst.destroy_snap', 'tst.get_count_and_limit',
109109
tags = ['functional', 'channel_program', 'synctask_core']
110110

111111
[tests/functional/checksum]
112-
tests = ['run_sha2_test', 'run_skein_test', 'filetest_001_pos',
112+
tests = ['run_edonr_test', 'run_sha2_test', 'run_skein_test', 'filetest_001_pos',
113113
'filetest_002_pos']
114114
tags = ['functional', 'checksum']
115115

tests/runfiles/linux.run

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ tags = ['functional', 'atime']
3838
tests = ['chattr_001_pos', 'chattr_002_neg']
3939
tags = ['functional', 'chattr']
4040

41-
[tests/functional/checksum:Linux]
42-
tests = ['run_edonr_test']
43-
tags = ['functional', 'checksum']
44-
4541
[tests/functional/cli_root/zfs:Linux]
4642
tests = ['zfs_003_neg']
4743
tags = ['functional', 'cli_root', 'zfs']

tests/zfs-tests/tests/functional/checksum/Makefile.am

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,11 @@ dist_pkgdata_DATA = \
2121
pkgexecdir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/checksum
2222

2323
pkgexec_PROGRAMS = \
24+
edonr_test \
2425
skein_test \
2526
sha2_test
2627

2728
skein_test_SOURCES = skein_test.c
2829
sha2_test_SOURCES = sha2_test.c
2930

30-
if BUILD_LINUX
31-
pkgexec_PROGRAMS += edonr_test
3231
edonr_test_SOURCES = edonr_test.c
33-
endif

tests/zfs-tests/tests/functional/checksum/default.cfg

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,4 @@
3030

3131
. $STF_SUITE/include/libtest.shlib
3232

33-
set -A CHECKSUM_TYPES "fletcher2" "fletcher4" "sha256" "sha512" "skein"
34-
if ! is_freebsd; then
35-
CHECKSUM_TYPES+=("edonr")
36-
fi
33+
set -A CHECKSUM_TYPES "fletcher2" "fletcher4" "sha256" "sha512" "skein" "edonr"

tests/zfs-tests/tests/functional/cli_root/zfs_set/checksum_001_pos.ksh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@
4646
verify_runnable "both"
4747

4848
set -A dataset "$TESTPOOL" "$TESTPOOL/$TESTFS" "$TESTPOOL/$TESTVOL"
49-
set -A values "on" "off" "fletcher2" "fletcher4" "sha256" "sha512" "skein" "noparity"
50-
if is_linux; then
51-
values+=("edonr")
52-
fi
49+
set -A values "on" "off" "fletcher2" "fletcher4" "sha256" "sha512" "skein" "edonr" "noparity"
5350

5451
log_assert "Setting a valid checksum on a file system, volume," \
5552
"it should be successful."

tests/zfs-tests/tests/functional/cli_root/zpool_get/zpool_get.cfg

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ typeset -a properties=(
7272
"feature@large_blocks"
7373
"feature@sha512"
7474
"feature@skein"
75+
"feature@edonr"
7576
"feature@device_removal"
7677
"feature@obsolete_counts"
7778
"feature@zpool_checkpoint"
@@ -97,10 +98,4 @@ if is_linux || is_freebsd; then
9798
"feature@livelist"
9899
"feature@zstd_compress"
99100
)
100-
fi
101-
102-
if ! is_freebsd; then
103-
properties+=(
104-
"feature@edonr"
105-
)
106-
fi
101+
fi

0 commit comments

Comments
 (0)