Releases: openzfs/zfs
zfs-2.4.1
Supported Platforms
- Linux: compatible with 4.18 - 6.19 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+, 15.0+
Changes
- Fix available space accounting for special/dedup (#18222) #18190 #18222
- CI: Test & fix Linux ZFS built-in build #18234
- Linux 6.19 compat: in-tree build: fix duplicate GCM assembly functions #18204 #18224
- zfs_vnops_os.c: Move a vput() to after zfs_setattr_dir()
- Fix activating large_microzap on receive #18143 #18144
- Improve caching for dbuf prefetches #18160
- Flush RRD only when TXGs contain data #18082 #18138
- Fix
send:rawpermission for send-w -I#18198 #18193 - ZTS: Fix zed_synchronous_zedlet #18192 #18196
- Linux 6.19 compat: META #18197
- CI: Test build Lustre against ZFS #18161
- Include missing newline in 'man' error #18183
- ZTS: update the relevant mmp test cases
- zhack: add "action idle" subcommand
- zhack: add -G option to dump debug buffer
- mmp: claim sequence id before final import
- mmp: add spa_load_name() for tryimport
- mmp: move "Starting import" log message
- mmp: further restrict mmp exported pool check
- Fix build for Linux 6.18 with PowerPC/RISC-V kernels. (#18145)
- Linux 6.19: handle --werror with CONFIG_OBJTOOL_WERROR=y #18152
- CI: Add Alpine Linux 3.23 runner to the pipeline (#18087)
- cmd/ztest: avoid
PATH_MAXstack allocation inztest_get_zdb_bin()(#18085) - zed.d, contrib: fix shellcheck errors in scripts
- zfs_main: cosmetic: add missing flag to the comment for create
- CI: Test 2.4.x in qemu-test-repo-vm.sh, quick mode #18070
- Change shellcheck and checkbashism triggers. #18000
- Replace bashisms in ZFS shell function stub. #18000
- Make lines stay within 80 char limit. #18000
- Add some comments to clarify the mounting of filesystems. #18000
- Standardise if/then/else and for/do/done lines. #18000
- Add missing initrd config variables. #18000
- Remove unnecessary sourcing of variables. #18000
- Fix issue with finding degraded pool(s). #18000
- Prefix all variables that are local with underscore. #18000
- Shell script good practices changes. #18000
- Fix potential global variable overwrite. #18000
- zpool: fix conflict with -v and -o options
- CI: Fix qemu-1-setup failure, remove debug stuff #18166
- CI: Use Ubuntu mirrors instead of azure (#18057) #18057
- nvpair: chase FreeBSD xdrproc_t definition #18154
- Make sure we can still write data to txg #18139
- Lock db_mtx around arc_release() in couple places #18146
- remove thread unsafe debug code causing FreeBSD double free panic #18140
- FreeBSD: Remove references to DEBUG_VFS_LOCKS #18136
- FreeBSD: unbreak compilation on i386 #18096
- Fix --enable-invariants on FreeBSD #18131
- Fix history logging for
zpool create -t#18118 #18102 - DDT: Add locking for table ZAP destruction #18115
- Add fh_to_parent export definition #18099
- spl: remove a _KERNEL check #18117
- spl: unexport kstat_proc_entry functions #18117
- spl: lift 64-bit math compat out to separate file #18117
- spl: remove old atomic lock #18117
- icp: emit .note.GNU-stack section for all ELF targets #18119
- When receiving a stream with the large block flag, activate feature #18105
- Fix zfs_open() to skip zil_async_to_sync() for the snapshot #18091
- ZTS: add regression test for #17180 #18109
- Rename several printf attributes declarations to printf #18095
- Add handling for STATX_CHANGE_COOKIE #18097
- kmem: don't add __GFP_RECLAIMABLE for KM_VMEM allocations #18107
- cmd/zfs: clone: accept
-uto not mount newly created datasets #18080 - kmem: don't add __GFP_COMP for KM_VMEM allocations #18053
- kmem: don't pass __GFP_HIGHMEM to __vmalloc #18053
- Linux 6.19: replace i_state access with inode_state_read_once() #18053
- Use reduced precision for scan times #18061
- Reduce minimal scrub/resilver times #18060
- zdb: Add -O option for -r to specify object-id #16307
- Fix rangelock test for growing block size #18064
- Bypass snprintf() in quota checks if no quotas set #18063
- RAIDZ: Remove some excessive logging #18059
- Remove the obsolete FreeBSD 14.2-RELEASE from CI #18013
- DDT: Fix compressed entry buffer size #18055
- DDT: Add/use zap_lookup_length_uint64_by_dnode() #18048
- DDT: Switch to using ZAP _by_dnode() interfaces #18047
- DDT: Move logs searches out of the lock #18044
- Improve async destroy processing timing #18043
- Defer async destroys on pool import #18033
- ZTS: Fix zvol_misc_fua SLOG writes check #18033
- ZIO: ZIO_STAGE_DDT_WRITE is a blocking stage #17981
- ARC: Increase parallel eviction batching #17970
- ARC: Pre-convert zfs_arc_min_prefetch_ms #17965
- Reduce dataset buffers re-dirtying #18028
- CI: Increase setup timeout to 20min, add timestamps #17714
zfs-2.3.6
Supported Platforms
- Linux: compatible with 4.18 - 6.19 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+, 15.0+
Changes
- CI: Test & fix Linux ZFS built-in build #18234
- chksum: run 256K benchmark on demand, preserve chksum_stat_data #17945 #17946
- Linux 6.19 compat: META #18197
- nvpair: chase FreeBSD xdrproc_t definition #18154
- remove thread unsafe debug code causing FreeBSD double free panic #18140
- FreeBSD: Remove references to DEBUG_VFS_LOCKS #18136
- FreeBSD: Remove HAVE_INLINE_FLSL use #18004
- Linux 6.19: replace i_state access with inode_state_read_once() #18053
- Linux 6.18: generic_drop_inode() and generic_delete_inode() renamed
- linux/super: add tunable to request immediate reclaim of unused dentries
- control its behaviour. By default it continues the traditional #17746
- linux/super: add tunable to request immediate reclaim of unused inodes #17746
- config: restore ZFS_AC_KERNEL_DENTRY tests #17621
- Fix a declaration position of the nth_page. #18034
- Fix build for Linux 6.18 with PowerPC/RISC-V kernels. (#18145)
- Linux 6.19: handle --werror with CONFIG_OBJTOOL_WERROR=y #18152
- ZTS: update the relevant mmp test cases
- zhack: add "action idle" subcommand
- zhack: add -G option to dump debug buffer
- mmp: claim sequence id before final import
- mmp: add spa_load_name() for tryimport
- mmp: move "Starting import" log message
- mmp: further restrict mmp exported pool check
- spa_activity_check: narrow scope of MMP vars #17551
- Enable zhack to work properly with 4k sector size disks #17576
- Add allocation profile export and zhack subcommand for import #17576
- CI: Test build Lustre against ZFS #18161
- CI: Fix qemu-1-setup failure, remove debug stuff #18166
- CI: Add Alpine Linux 3.23 runner to the pipeline (#18087)
- ZTS: add mount_loopback to test zfs behind loop dev #17329
- CI: Test 2.4.x in qemu-test-repo-vm.sh, quick mode #18070
- CI: Add smatch static analysis workflow #17935
- ZIO: Set minimum number of free issue threads to 32 #17903
- Suppress some ashift warnings #17830
- Explicit set ashift for non-leaf vdevs #17826
- raidz_test: Restore rand_data protection #17977
- raidz_test: Fix ZIO ABDs initialization #17977
- raidz_test: Set io_offset reasonably #17977
- ZFS: Enable more logs for raidz_001_neg #17977
- CI: Use Ubuntu mirrors instead of azure (#18057) #18057
- CI: Change timeout values #18056
- CI: zfs-test-packages: Add in new repos #17956
- CI: Fix Ubuntu 22.01 rsend failures #18032
- CI: exclude signed-off-by/reviewed-by from 72 char limit #18030
- Fix HIGHMEM/kmap API violation in zfs_uiomove_bvec_impl() #15668 #18030
- Preserve LIFO ordering of kmap ops in abd_raidz_gen_iterate() #15668 #18030
- Fix interaction of abd_iter_map()/abd_iter_unmap() with HIGHMEM #15668 #18030
- Linux 6.18: META
- config/kmap_atomic: initialise test data
- zvol_id: make array length properly known at compile time
- Linux: bump -std to gnu11
- sha256_generic: make internal functions a little more private
- Linux 6.18: namespace type moved to ns_common
- Linux 6.18: replace write_cache_pages()
- Linux 6.18: block_device_operations->getgeo takes struct gendisk*
- Linux 6.18: convert ida_simple_* calls
- Linux 6.18: replace nth_page()
- linux: use sys/stat.h instead of linux/stat.h #17675
- config: Fix LLVM-21 -Wuninitialized-const-pointer warning (#17997) #17682 #17684
zfs-2.4.0
We are excited to announce OpenZFS 2.4.0!
Supported Platforms
- Linux: compatible with 4.18 - 6.18 kernels
- FreeBSD: compatible with versions 14, 15 & 16
Key Features in OpenZFS 2.4.0:
- Quotas: Allow setting default user/group/project quotas (#17130)
- Uncached IO: Direct IO fallback to a light-weight uncached IO when unaligned (#17218, #17407, #17872, #17875)
- Unified allocation throttling: A new algorithm designed to reduce vdev fragmentation (#17020)
- Better encryption performance using AVX2 for AES-GCM (#17058)
- Allow ZIL on special vdevs when available (#17505)
- Extend
special_small_blocksto land ZVOL writes on special vdevs (#14876), and allow non-power of two values (#17497) - Add
zfs rewrite -Pwhich preserves logical birth time when possible to minimize incremental stream size (#17565) - Add
-a|--alloption which scrubs, trims, or initializes all imported pools (#17524) - Add
zpool scrub -S -Eto scrub specific time ranges (#16853) - Add
zpool prefetch -t brtto prefetch BRT (block cloning table) (#17890) - Add
send:encryptedpermission (#17543) - Rename
arc_summaryandarcstattozarcsummaryandzarcstat(#17712) - Temporarily "sit out" child vdevs that are being abnormally slow (#17227)
- Relax topology restrictions on special/dedup vdevs (#17496)
- Improvements to ashift handling (#17826, #17830)
- Multiple gang blocks improvements and fixes (#17111, #17004, #17587, #17484, #17123, #17073, #17824)
- New dedup optimizations and fixes (#17038, #17123, #17435, #17391, #17960, #17961, #17980, #17983)
- New block cloning optimizations and fixes (#17572, #17875, #17903, #17915, #17916, #17921)
zfs-2.4.0 changelog: git cherry -v remotes/origin/zfs-2.3-release zfs-2.4.0 | sed '/^-/d; s/+ //g'
Additional Information:
-
Documentation - OpenZFS documentation for Linux and FreeBSD.
Thank you to all 121 contributors who participated in this release cycle
$ git shortlog -s zfs-2.3.0..zfs-2.4.0 1 Achill Gilgenast 3 Adi-Goll 4 Ahelenia ZiemiaΕska 1 Akash B 13 Alan Somers 1 Alek Pinchuk 1 Aleksandr Liber 1 Alex 119 Alexander Motin 3 Alexander Ziaee 1 Alexx Saver 2 Allan Jude 26 Ameer Hamza 1 Andres 3 Andrew Walker 1 Andriy Tkachuk 1 Artem 1 Artem-OSSRevival 9 Attila FΓΌlΓΆp 7 Brian Atkinson 51 Brian Behlendorf 2 Cameron Harr 1 Carl George 8 Chunwei Chen 1 Coleman Kane 1 Colin Percival 1 Cong Zhang 2 Dag-Erling SmΓΈrgrav 2 Dimitry Andric 1 Diwakar Kristappagari 3 Don Brady 1 Dr. Christian KohlschΓΌtter 1 Eric A. Borisch 1 Fabian-Gruenbichler 9 Fedor Uporov 1 Felix Schmidt 1 Friedrich Weber 3 George Amanakis 1 Germano Massullo 5 Gionatan Danti 5 Igor Ostapenko 7 Ivan Shapovalov 2 Ivan Volosyuk 1 JKDingwall 1 JT Pennington 1 James Reilly 1 Jaydeep Kshirsagar 1 Jean-SΓ©bastien PΓ©dron 1 Jerzy KoΕosowski 1 Jitendra Patidar 2 Jo Zzsi 1 Joel Low 1 Joseph Anthony Pasquale Holsten 2 JosΓ© Luis Salvador Rufo 1 Konstantin Belousov 1 Kyle Evans 1 Maksym Shkolnyi 6 Mariusz Zaborski 10 Mark Johnston 5 Martin MatuΕ‘ka 2 Martin RΓΌegg 1 Mateusz Guzik 1 Mateusz Piotrowski 1 Matthew Heller 1 Meriel Luna Mittelbach 2 Olivier Certner 1 Patrick Fasano 1 Patrick Xia 33 Paul Dagnelie 5 Pavel Snajdr 1 Peng Liu 1 Phil Sutter 1 Piotr Kubaj 1 Piotr P. Stefaniak 1 Quartz 1 Quentin ThΓ©bault 1 RenΓ© Wirnata 1 Rich Ercolani 2 Richard Kojedzinszky 4 Richard Yao 5 Rick Macklem 229 Rob Norris 5 Robert Evans 1 Roberto Ricci 1 Ryan Libby 2 SHENGYI HONG 1 Sam James 1 Sebastian Pauka 1 Serapheim Dimitropoulos 1 Shawn Bayern 13 Shengqi Chen 5 Shreshth Srivastava 1 Sietse 7 Simon Howard 1 Steve Mokris 1 Syed Shahrukh Hussain 1 Tim Smith 20 Tino Reichardt 1 Todd Seidelmann 1 Todd Zullinger 1 Tomohiro Kusumi 36 Tony Hutter 9 Toomas Soome 7 Umer Saleem 1 Vandana Rungta 1 Warner Losh 1 Youzhong Yang 3 bspengler-oss 2 buzzingwires 1 classabbyamp 1 hoshinomori 1 jamisiveshkumar 1 khoang98 1 kotauskas 1 mnrx 1 nav1s 1 ofthesun9 1 poscat 1 tleydxdy 1 trick2011 2 tstabrawa
-
Module option changes - See the module parameters documentation for the complete list of the options and what they control.
New module options
Removed module options
Modified module options
-
Feature flags changes - See the feature flags documentation for the complete list of the options and what they control.
New feature flags
-
VDEV property changes - See the vdev properties documentation for the complete list of the options and what they control.
New vdev properties
-
dataset property changes - See the dataset properties documentation for the complete list of the options and what they control.
New dataset properties
zfs-2.4.0-rc5
We are excited to announce the fifth release candidate (rc5) of OpenZFS 2.4.0!
Supported Platforms
- Linux: compatible with 4.18 - 6.18 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Key Features in OpenZFS 2.4.0:
- Quotas: Allow setting default user/group/project quotas (#17130)
- Uncached IO: Direct IO fallback to a light-weight uncached IO when unaligned (#17218)
- Unified allocation throttling: A new algorithm designed to reduce vdev fragmentation (#17020)
- Better encryption performance using AVX2 for AES-GCM (#17058)
- Allow ZIL on special vdevs when available (#17505)
- Extend
special_small_blocksto land ZVOL writes on special vdevs (#14876), and allow non-power of two values (#17497) - Add
zfs rewrite -Pwhich preserves logical birth time when possible to minimize incremental stream size (#17565) - Add
-a|--alloption which scrubs, trims, or initializes all imported pools (#17524) - Add
zpool scrub -S -Eto scrub specific time ranges (#16853) - Release topology restrictions on special/dedup vdevs (#17496)
- Multiple gang blocks improvements and fixes (#17111, #17004, #17587, #17484, #17123, #17073)
- New dedup optimizations and fixes (#17038, #17123, #17435, #17391)
How to Participate:
We encourage users and developers to test this release candidate and provide feedback. Your input is invaluable in ensuring the final release meets our community's needs. Please report any issues you encounter in our GitHub repository.
zfs-2.4.0-rc5 changelog: git cherry -v remotes/origin/zfs-2.3-release zfs-2.4.0-rc5 | sed '/^-/d; s/+ //g'
zfs-2.3.5
Supported Platforms
- Linux: compatible with 4.18 - 6.17 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Changes
- FreeBSD: Satisfy ASSERT_VOP_IN_SEQC() #17722
- CI: Update FreeBSD versions and ci-type handling #17896
- BRT: Fix ranges to blocks conversion math #17886 #17915
- zstd: disable intrinsics #17904 #17852
- Linux 6.17 compat: Fix broken projectquota on 6.17 #17884 #17869
- Synchronize the update of feature refcount #17184 #17632
- zdb: Fix asize overflow in verify_livelist_allocs() #17764
- Fix two infinite loops if dmu_prefetch_max set to zero #17692 #17729
- dnode_next_offset: backtrack if lower level does not match #16025 #11196
- zvol: verify IO type is supported #17803
- zvol: Fix blk-mq sync #17761 #17765
- Linux 6.17 compat: META #17789
- Add interface to interface spa_get_worst_case_min_alloc() function #17758
- contrib/initramfs/scripts/zfs: shellcheck fixup #17626
- Fix 'zpool add' safety check corner cases #17780
- Linux 6.17: d_set_d_op() is no longer available #17621
- CI: Fix FreeBSD 15.0 by staying on ALPHA4 due to broken ALPHA5 image #17846
- CI: Switch FreeBSD 15 to 15.0-ALPHA4 and add FreeBSD 16 #17815
- docs: fix a few small typos (#17804)
- CI: Add ZTS -O option, log Setup Testing Machines step #17753
- CI: Switch FreeBSD 15 to 15.0-ALPHA3 #17795
- CI: Remove Buildbot references #17794
- CI: update perf and bpftools with the kernel packages #17791
- CI: Switch FreeBSD 15 to 15.0-ALPHA2 #17749
- CI: Increase setup timeout to 20min, add timestamps #17714
- ci: fix syntax issues in zfs-qemu.yml #17695
- ci: use real head sha instead of GITHUB_SHA when generating CI type #17695
- CI: Increase 'Setup QEMU' timeout to 15 minutes #17697
zfs-2.2.9
Supported Platforms
- Linux: compatible with 4.18 - 6.17 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Changes
- BRT: Fix ranges to blocks conversion math #17886 #17915
- CI: Update FreeBSD versions and ci-type handling #17896
- zstd: disable intrinsics #17904 #17852
- freebsd: unbreak module/Makefile.bsd build on 15-CURRENT-arm64 #17219
- Linux 6.17 compat: Fix broken projectquota on 6.17 #17884 #17869
- Faster checksum benchmark on system boot #17563 #17560
- Validate mountpoint on path-based unmount using statx #17481
- pyzfs: Update ax_python_devel.m4 to serial 37 #17480
- Reduce zfs_dmu_offset_next_sync penalty #17434
- build: use correct bashcompletiondir on arch #16861
- Add building support for Artix Linux (#16265)
- config/zfs-build.m4: sort vendors #16164
- enforce arc_dnode_limit #17487 #17542
- Soften pruning threshold on not evictable metadata #16401
- Several improvements to ARC shrinking (#16197)
- Debian rules: install scripts/objtool-wrapper.in into dkms tree #17633 #17646
- objtool-wrapper: Update Debian packaging #17633 #17646
- objtool wrapper: use absolute path to call the wrapper #17541
- dnode_next_offset: backtrack if lower level does not match #16025 #11196
- contrib/initramfs/scripts/zfs: shellcheck fixup #17626
- [zfs-2.2.9] Fix zpl_ctldir.c checkstyle
- zvol: verify IO type is supported #17803
- zvol: Fix blk-mq sync #17761 #17765
- ZTS: make uses of mktemp consistent
- Linux 6.17 compat: META #17789
- Add interface to interface spa_get_worst_case_min_alloc() function #17758
- Fix 'zpool add' safety check corner cases #17780
- Linux 6.17: d_set_d_op() is no longer available #17621
- Linux 6.16 compat: META #17578
- linux/zvol_os: fix crash with blk-mq on Linux 4.19 #17597
- Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread #17561
- Linux 6.16: remove writepage and readahead_page #17443
- Linux build: handle CONFIG_OBJTOOL_WERROR=y #17456
- CI: Fix FreeBSD 15.0 by staying on ALPHA4 due to broken ALPHA5 image #17846
- CI: Switch FreeBSD 15 to 15.0-ALPHA4 and add FreeBSD 16 #17815
- docs: fix a few small typos (#17804)
- CI: Add ZTS -O option, log Setup Testing Machines step #17753
- CI: Switch FreeBSD 15 to 15.0-ALPHA3 #17795
- CI: Remove Buildbot references #17794
- CI: update perf and bpftools with the kernel packages #17791
- CI: Switch FreeBSD 15 to 15.0-ALPHA2 #17749
- CI: Increase setup timeout to 20min, add timestamps #17714
- ci: fix syntax issues in zfs-qemu.yml #17695
- ci: use real head sha instead of GITHUB_SHA when generating CI type #17695
- CI: Increase 'Setup QEMU' timeout to 15 minutes #17697
- CI: Add Debian 13 to the FULL_OS runner list #17648
- CI: Add optional patch level, fix hostname on F42 #17638
- FreeBSD 15.0 is now "PRERELEASE" #17617
- CI: match and trim out internal timestamp for test prefix #17045
- Add CodeQL mismatched dsl_dataset_hold/_rele pairs check #17352
- CI: Remove Debian backports #17569
- CI: Add CentOS Stream 9/10 to the FULL_OS runner list #16904 #17526
- ZTS: Fix FreeBSD 15.0 ksh errors #17523
- CI: Switch from FreeBSD 13.4 to 13.5 #17519
- CI: run ztest on compressed zpool #17501
- ZTS: Use FreeBSD cloudinit images #17462
zfs-2.4.0-rc4
We are excited to announce the fourth release candidate (RC4) of OpenZFS 2.4.0!
Supported Platforms
- Linux: compatible with 4.18 - 6.17 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Key Features in OpenZFS 2.4.0:
- Quotas: Allow setting default user/group/project quotas (#17130)
- Uncached IO: Direct IO fallback to a light-weight uncached IO when unaligned (#17218)
- Unified allocation throttling: A new algorithm designed to reduce vdev fragmentation (#17020)
- Better encryption performance using AVX2 for AES-GCM (#17058)
- Allow ZIL on special vdevs when available (#17505)
- Extend
special_small_blocksto land ZVOL writes on special vdevs (#14876), and allow non-power of two values (#17497) - Add
zfs rewrite -Pwhich preserves logical birth time when possible to minimize incremental stream size (#17565) - Add
-a|--alloption which scrubs, trims, or initializes all imported pools (#17524) - Add
zpool scrub -S -Eto scrub specific time ranges (#16853) - Release topology restrictions on special/dedup vdevs (#17496)
- Multiple gang blocks improvements and fixes (#17111, #17004, #17587, #17484, #17123, #17073)
- New dedup optimizations and fixes (#17038, #17123, #17435, #17391)
How to Participate:
We encourage users and developers to test this release candidate and provide feedback. Your input is invaluable in ensuring the final release meets our community's needs. Please report any issues you encounter in our GitHub repository.
zfs-2.4.0-rc4 changelog: git cherry -v remotes/origin/zfs-2.3-release zfs-2.4.0-rc4 | sed '/^-/d; s/+ //g'
zfs-2.4.0-rc3
We are excited to announce the second release candidate (RC3) of OpenZFS 2.4.0!
Supported Platforms
- Linux: compatible with 4.18 - 6.17 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Key Features in OpenZFS 2.4.0:
- Quotas: Allow setting default user/group/project quotas (#17130)
- Uncached IO: Direct IO fallback to a light-weight uncached IO when unaligned (#17218)
- Unified allocation throttling: A new algorithm designed to reduce vdev fragmentation (#17020)
- Better encryption performance using AVX2 for AES-GCM (#17058)
- Allow ZIL on special vdevs when available (#17505)
- Extend
special_small_blocksto land ZVOL writes on special vdevs (#14876), and allow non-power of two values (#17497) - Add
zfs rewrite -Pwhich preserves logical birth time when possible to minimize incremental stream size (#17565) - Add
-a|--alloption which scrubs, trims, or initializes all imported pools (#17524) - Add
zpool scrub -S -Eto scrub specific time ranges (#16853) - Release topology restrictions on special/dedup vdevs (#17496)
- Multiple gang blocks improvements and fixes (#17111, #17004, #17587, #17484, #17123, #17073)
- New dedup optimizations and fixes (#17038, #17123, #17435, #17391)
How to Participate:
We encourage users and developers to test this release candidate and provide feedback. Your input is invaluable in ensuring the final release meets our community's needs. Please report any issues you encounter in our GitHub repository.
zfs-2.4.0-rc3 changelog: git cherry -v remotes/origin/zfs-2.3-release zfs-2.4.0-rc3 | sed '/^-/d; s/+ //g'
zfs-2.4.0-rc2
We are excited to announce the second release candidate (RC2) of OpenZFS 2.4.0!
Supported Platforms
- Linux: compatible with 4.18 - 6.17 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Key Features in OpenZFS 2.4.0:
- Quotas: Allow setting default user/group/project quotas (#17130)
- Uncached IO: Direct IO fallback to a light-weight uncached IO when unaligned (#17218)
- Unified allocation throttling: A new algorithm designed to reduce vdev fragmentation (#17020)
- Better encryption performance using AVX2 for AES-GCM (#17058)
- Allow ZIL on special vdevs when available (#17505)
- Extend
special_small_blocksto land ZVOL writes on special vdevs (#14876), and allow non-power of two values (#17497) - Add
zfs rewrite -Pwhich preserves logical birth time when possible to minimize incremental stream size (#17565) - Add
-a|--alloption which scrubs, trims, or initializes all imported pools (#17524) - Add
zpool scrub -S -Eto scrub specific time ranges (#16853) - Release topology restrictions on special/dedup vdevs (#17496)
- Multiple gang blocks improvements and fixes (#17111, #17004, #17587, #17484, #17123, #17073)
- New dedup optimizations and fixes (#17038, #17123, #17435, #17391)
How to Participate:
We encourage users and developers to test this release candidate and provide feedback. Your input is invaluable in ensuring the final release meets our community's needs. Please report any issues you encounter in our GitHub repository.
zfs-2.4.0-rc2 changelog: git cherry -v remotes/origin/zfs-2.3-release zfs-2.4.0-rc2 | sed '/^-/d; s/+ //g'
zfs-2.3.4
Supported Platforms
- Linux: compatible with 4.18 - 6.16 kernels
- FreeBSD: compatible with releases starting from 13.3+, 14.0+
Changes
- CI: Add Debian 13 to the FULL_OS runner list #17648
- Debian rules: install scripts/objtool-wrapper.in into dkms tree #17633 #17646
- objtool-wrapper: Update Debian packaging #17633 #17646
- add uncompressed_size to arc_summary #17556
- FreeBSD: Add support for _PC_HAS_HIDDENSYSTEM #17518
- Add templated zfs-mount@.service #17483
- FreeBSD: Ensure that z_pflags is initialized for new znodes #17486
- CI: Add optional patch level, fix hostname on F42 #17638
- Add CodeQL mismatched dsl_dataset_hold/_rele pairs check #17352
- Add conflict/replacement with older SONAME libzfs and libzpool packages #17586
- FreeBSD: zfs_putpages: don't undirty pages until after write completes #17533
- Revert "FreeBSD: zfs_putpages: don't undirty pages until after write completes" #17533
- Allow vmem_alloc backed multilists #17616
- Silence zstd large allocation warning #17620 #11557
- FreeBSD 15.0 is now "PRERELEASE" #17617
- Linux 6.16 compat: META #17578
- zed: prettify slack notification message #17610
- linux/zvol_os: fix crash with blk-mq on Linux 4.19 #17597
- rpm: don't list /sbin/zgenhostid twice in %files #17601
- config: Avoid
void main()in toolchain-simd.m4 #13303 #17590 - SIMD: Don't require definition of
HAVE_XSAVE#13303 #17590 - Linux: zfs_putpage: document (and fix!) confusing sync/commit modes #17584
- Linux: zfs_putpage: complete async page writeback immediately #17584 #14290
- Linux: sync: remove async/sync accounting #17584
- ZTS: mmap_ftruncate test to confirm async writeback behaviour #17584
- CI: match and trim out internal timestamp for test prefix #17045
- ZTS: include microsecond timestamps on all output #17045
- CI: Remove Debian backports #17569
- linux: Fix out-of-src builds #17517
- Fix zdb pool/ with -k #17536
- CI: Add CentOS Stream 9/10 to the FULL_OS runner list #16904 #17526
- Delete unused .cirrus.yml #17155 #17535
- ZTS: Fix FreeBSD 15.0 ksh errors #17523
- CI: Switch from FreeBSD 13.4 to 13.5 #17519
- Revert "Fix incorrect expected error in ztest" #17503
- ztest: Fix false positive of ENOSPC handling #17506
- CI: run ztest on compressed zpool #17501
- pyzfs: Adapt python lib directory evaluation from ax_python_devel.m4 #16155 #17480
- pyzfs: Update ax_python_devel.m4 to serial 37 #17480
- Missing tests in make pkg #17491
- spa: ZIO_TASKQ_ISSUE: Use symbolic priority #17489
- Fix TestGroup warning due to missing tags #17473
- ZTS: Use FreeBSD cloudinit images #17462
- objtool wrapper: use absolute path to call the wrapper #17541
- Linux build: handle CONFIG_OBJTOOL_WERROR=y #17456
- Make TX abort after assign safer #17438
- Introduce zfs rewrite subcommand (#17246)
- Linux 6.16: remove writepage and readahead_page #17443
- Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread #17561
- enforce arc_dnode_limit #17487 #17542
- Increase meta-dnode redundancy in "some" mode #17339
- Ensure that gang_copies is always at least as large as copies #17484
- zts: add spdx license tags to gang_blocks tests (#17160)
- Make ganging redundancy respect redundant_metadata property (#17073)
- SPDX: Add missing CDDL-1.0 license
- range_tree: Provide more debug details upon unexpected add/remove #17581
- Faster checksum benchmark on system boot #17563 #17560
- Don't use wrong weight when passivating group #17566
- Default to zfs_bclone_wait_dirty=1 #17455
- zdb: fix checksum calculation for decompressed blocks #17547
- ZED: Fix device type detection and pool iteration logic #17545
- Define sops->free_inode() to prevent use-after-free during lookup #17546
- ZIL: Force writing of open LWB on suspend #17521
- Correct weight recalculation of space-based metaslabs #17531
- Validate mountpoint on path-based unmount using statx #17481
- Fix other nonrot bugs #17469
- Polish db_rwlock scope #17441
- scrub: generate scrub_finish event #17432
- Some arc_release() cleanup #17126
- FDT dedup log sync -- remove incremental #17038
- ZIL: Relax parallel write ZIOs processing #17458