Supported Platforms
- Linux: compatible with 3.10 - 6.8 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- Fix updating the zvol_htable when renaming a zvol #16127 #16128
- Add prefetch property #15237 #15436
- vdev probe to slow disk can stall mmp write checker #15839
- Extend import_progress kstat with a notes field #15539
- Add ashift validation when adding devices to a pool #15509
- Fix arcstats for FreeBSD after zfetch support #16141
- Add zfetch stats in arcstats #16094
- Use ASSERT0P() to check that a pointer is NULL. #15225
- GCC: Fixes for gcc 14 on Fedora 40 #16124 #16125
- Python 3.12 deprecated python3-distutils #16126 #16129
- zfs-kmod: fix empty rpm requires/conflicts #16121
- ZTS: user_namespace_004.ksh avoid error in cleanup if unsupported #16114
- Add newline to two zpool messages #16113
- Do no use .cfi_negate_ra_state within the assembly on Arm64 #14965 #15784
- Add the BTI elf note to the AArch64 SHA2 assembly #16086
- AUTHORS: refresh with recent new contributors #16079
- return NULL at end of send_progress_thread #16074
- Fix locale-specific time #15878 #15879
- Fix panics when truncating/deleting files #15983
- vdev props comment and manpage should include zfsd and FreeBSD mentions #15968
- Add slow disk diagnosis to ZED #15469
- [2.2.4-only] Stub RAIDZ enums to prevent conflicts
- zap_leaf: make l_hash[] variable length to silence UBSAN #15964
- Give a better message from 'zpool get' with invalid pool name #15942
- xdr: header cleanup #16047 #16051
- Fix buffer underflow if sysfs file is empty #16028 #16035
- ZTS: fix flakiness in cp_files_002_pos #16029
- Fix option string, adding -e and fixing order #16008
- freebsd: fix missing headers in distribution tarball #15963
- Check for minimum partition size #15898
- Add VERIFY0P() and ASSERT0P() macros. #15225
- Clean up existing VERIFY*() macros. #15225
- etc/init.d: decide which variant to use at build time. #15977
- config/Substfiles.am: restrict to the dedicated list. #15980
- man: move zfs_prepare_disk.8 to nodist_man_MANS #15979
- Add support for zfs mount -R #16015
- Linux 6.9 compat: blk_alloc_disk() now takes two args #16027 #16033
- Linux 6.9 compat: bdev handles are now struct file #16027 #16033
- vdev_disk: clean up spa/bdev mode conversion #15995
- Linux 5.18+ compat: Detect filemap_range_has_page #16034
- udev: correctly handle partition #16 and later #15904 #15970
- zvols: prevent overflow of minor device numbers #16006
- Linux 6.8 compat: META (#16099)
- bdev_discard_supported: understand discard_granularity=0
- L2ARC: Relax locking during write #16040
- Small fix to prefetch ranges aggregation #16072
- Remove db_state DB_NOFILL checks from syncing context #16057
- Speculative prefetch for reordered requests #16022
- Fix read errors race after block cloning #16052
- Improve dbuf_read() error reporting #16042
- BRT: Check pool clone stats in more tests #16007
- BRT: Fix tests to work on non-empty pools #16007
- BRT: Fix holes cloning. #15994 #16007
- BRT: Skip getting length in brt_entry_lookup() #15950
- BRT: Make BRT block sizes configurable #15967
- BRT: Relax brt_pending_apply() locking #15955
- ZAP: Massively switch to _by_dnode() interfaces #15951
- BRT: Skip duplicate BRT prefetches #15941
- ZAP: Some cleanups/micro-optimizations #15976
- BRT: Change brt_pending_tree sorting order #15954
- Update resume token at object receive. #15927
- Linux: Cleanup taskq threads spawn/exit #15873
- Refactor dmu_prefetch(). #15076
- ZIL: Update Linux tracing after #15635 #15730
- ZIL: Improve next log block size prediction #15635
- ZIO: Optimize zio_flush() #15515
- ZIL: Detect single-threaded workloads #15381
- zvol_os: fix compile with blk-mq on Linux 4.x #16069
- zvol_os: fix build on Linux <3.13 #16062
- zvol: use multiple taskq #15992
- vdev_disk: fix alignment check when buffer has non-zero starting offset
- vdev_disk: ensure trim errors are returned immediately
- vdev_disk: don't touch vbio after its handed off to the kernel
- Fix corruption caused by mmap flushing problems #15933 #16019
- vdev_disk: default to classic submission for 2.2.x
- abd_iter_page: don't use compound heads on Linux <4.5 #15533 #15588
- vdev_disk: use bio_chain() to submit multiple BIOs #15533 #15588
- vdev_disk: add module parameter to select BIO submission method #15533 #15588
- vdev_disk: rewrite BIO filling machinery to avoid split pages #15533 #15588
- vdev_disk: make read/write IO function configurable #15533 #15588
- vdev_disk: reorganise vdev_disk_io_start #15533 #15588
- vdev_disk: rename existing functions to vdev_classic_* #15533 #15588
- abd: add page iterator #15533 #15588
- linux 5.4 compat: page_size() #15533 #15588
- Linux 6.8 compat: use splice_copy_file_range() for fallback #15930 #15931