Supported Platforms
- Linux: compatible with 3.10 - 5.11 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Fix vdev health padding in zpool list -v #11899
- Obsolete earlier packages due to version bump #11844 #11895
- linux/libspl: getextmntent(): don't leak mnttab FILE* #11868
- libzfs: zfs_mount_at(): load key for encryption root if MS_CRYPT #11870 #11875
- FreeBSD: use vnlru_free_vfsops if available #11881
- FreeBSD: add missing seqc write begin/end around zfs_acl_chown_setattr #11884
- FreeBSD: add support for lockless symlink lookup #11883
- .gitmodules: link to openzfs github repository #11868
- cmd/zfs receive: allow dry-run (-n) to check property args #11862
- Improvements to the 'compatibility' property #11861
- ZTS: fix removal_condense_export test case #11869
- Update libzfs.abi for zfs_send() change #11710
- Balance parentheses in parameter descriptions #11882
- ZTS: Add known exceptions #11890
- lib/: set O_CLOEXEC on all fds #11866
- libzfs{,_core}: set O_CLOEXEC on persistent (ZFS_DEV and MNTTAB) fds #11866
- libzfs: zfs_crypto_create() requires a new key by definition: set newkey #11866
- libzfs_crypto.c: remove unused key_locator enum #11866
- zfprops(8): fix spacing in jailed= arguments #11866
- zfs-[un]jail(8): fix "zfs-jail [un]jail" leftovers #11866
- Allow zfs to send replication streams with missing snapshots #11710
- kmod-zfs should obsolete kmod-spl as well as spl-kmod #11865
- zvol_wait: properly handle zvol_volmode sysctl being 3/none #11859
- zfs_ids_to_path: print correct wrong values #11859
- zfs_ids_to_path: the -v comes after the executable name #11859
- contrib/bpftrace: exec bpftrace, remove useless cat #11859
- arc_summary3: just read /s/m/{mod}/version instead of spawning cat #11859
- zvol_wait: fix for zvols with spaces in name, optimise #11859
- zstreamdump: exec zstream dump #11859
- zpl_inode.c: Fix SMACK interoperability #11646 #11839
- ZTS: Improve cleanup in removal_with_export #11856
- Added check for broken alien version #11848 #11850
- Use dsl_scan_setup_check() to setup a scrub #11849
- Fix double sha1/sha1.o line in module/icp/Makefile.in #11852
- ZTS: Tests using zhack may fail on FreeBSD #11854 #11855
- Ratelimit deadman zevents as with delay zevents #11786
- Add kmodtool fix to detect different System.map location #7807 #11836
- zed: untangle _zed_conf_parse_path() #11860
- zed: don't malloc() global zed_conf instance, optimise zed_conf layout #11860
- zed: remove zed_conf::{min,max}events and ZED{MIN,MAX}_EVENTS #11860
- zed: remove zed_conf::syslog_facility #11860
- zed: _zed_conf_display_help(): be consistent about what got_err means #11860
- zed: untangle -h option listing #11860
- zed: print out licence string as one big chunk #11860
- zed: only go up to current limit in close_from() fallback #11834
- zed.8: the Diagnosis Engine is implemented #11834
- zed: replace zed_file_write_n() with write(2), purge it #11834
- zed: merge all NOT_IMPLEMENTED events #11834
- zed: remove unused zed_file_read_n() #11834
- zed: bump zfs_zevent_len_max if we miss any events #11834
- zed.8: don't pretend an unprivileged user could change the script owner #11834
- zed: purge all mentions of a configuration file #11834
- zed: implement close_from() in terms of /proc/self/fd, if available #11834
- zed: print combined system/user time after ZEDLET death #11834
- zed: allow limiting concurrent jobs #11807
- zed: remove unused zed_file_close_on_exec() #11807
- zed: use separate reaper thread and collect ZEDLET asynchronously #11807
- zed: set names for all threads #11807