版本发布 8
#### Supported Platforms - **Linux**: compatible with 4.18 - 6.19 kernels - **FreeBSD**: compatible with releases starting from 13.3+, 14.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:raw` permission 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_MAX` stack allocation in `ztest_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 - Reviewed-by: Rob Norris <robn@despairlabs.com> #11040 #17839 - 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 `-u` to 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 - Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> #18046 #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
#### Supported Platforms - **Linux**: compatible with 4.18 - 6.19 kernels - **FreeBSD**: compatible with releases starting from 13.3+, 14.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
#### 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
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_blocks` to land ZVOL writes on special vdevs (#14876), and allow non-power of two values (#17497) - Add `zfs rewrite -P` which preserves logical birth time when possible to minimize incremental stream size (#17565) - Add `-a|--all` option which scrubs, trims, or initializes all imported pools (#17524) - Add `zpool scrub -S -E` to 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](https://github.com/openzfs/zfs/issues/new/choose). **zfs-2.4.0-rc2 changelog**: `git cherry -v remotes/origin/zfs-2.3-release zfs-2.4.0-rc2 | sed '/^-/d; s/+ //g'`
#### 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
#### Supported Platforms - **Linux**: compatible with 4.18 - 6.15 kernels - **FreeBSD**: compatible with releases starting from 13.3+, 14.0+ #### Changes - Tag zfs-2.3.3 - Linux 6.15 compat: META #17393 - Fix mixed-use-of-spaces-and-tabs rpmlint warning #17461 - ioctl: remove FICLONE/FICLONERANGE/FIDEDUPERANGE compat #17308 - Relax zfs_vnops_read_chunk_size limitations #17415 - dmu_traverse: remove 'ignore_hole_birth' tunable alias #17376 - ARC: parallel eviction #16486 - During pool export flush the ARC asynchronously #16215 - CI: Automate some GitHub PR status labels manipulations #16721 - FreeBSD: zfs_putpages: don't undirty pages until after write completes #17445 - zfs_log_write: only put the callback on the last itx #17445 - zpl_sync_fs: work around kernels that ignore sync_fs errors #17420 - zfs_sync: return error when pool suspends #17420 - zfs_sync: remove support for impossible scenarios #17420 - zts: test syncfs() behaviour when pool suspends #17420 - Improve block cloning transactions accounting #17431 - Reduce zfs_dmu_offset_next_sync penalty #17434 - Make TX abort after assign safer #17438 - Allow zero compression if dedup is enabled #17435 - ZTS: Enable io_uring on CentOS Stream 9 and 10 also #17447 - Linux build: silence objtool warnings #17410 - CI: Retire Fedora 40 builder #17408 - ZTS: Enable io_uring support on el9/el10 #17397 - ZTS: Add AlmaLinux 10 #17397 - abd_os: move headers from libzpool to libspl #16940 #17390 #17394 - Set spa_final_txg in spa_unload() #17395 - zpool: clarify ZPOOL_STATUS_REMOVED_DEV status message #17400 - vdev: skip faulting disks pending removal #17400 - CI: Retire Ubuntu 20.04 builder #17403 - linux/zvol_os: don't try to set disk ops if alloc fails #17396 - Linux build: always use objtool - Reviewed-by: Tony Hutter <hutter2@llnl.gov> #17401 #17364 - tunables: fix spelling #17377 - tunables: remove __check_old_set_param workaround #17377 - tunables: remove unused param get/set aliases #17377 - tunables: use Linux ullong param ops for u64 #17377 - tunables: remove support for s64 tunables #17377 - tunables: remove direct use of module_param_cb #17377 - tunables: remove FreeBSD compat macros for Linux module params #17377 - tunables: ensure tunable and variable have same define gate #17377 - tunables: don't assert initialisation in impl getters #17377 - zfs_log: make zfs_immediate_write_sz uint #17377 - Only interrupt active disk I/Os in failmode=continue #17372 - zcp: get_prop: fix encryptionroot and encryption #17280 - ZVOL: Comment platform-specific empty functions bodies on FreeBSD side #17383 - Expose dataset encryption status via fast stat path #17368 - ZIL: Improve write log size accounting #17373 - ZTS: testing for leaked key mappings in encrypted non-raw send #17366 - Refactor man page and CLI help output per mandoc #17357 - Reformat cli help and man page to be in sync #16004 #17357 - Fix off-by-one bug in range tree code #17363 - Fix null dereference in spa_vdev_remove_cancel_sync() #17361 - Update 69-vdev.rules.in #17345 - lzc_ioctl_fd: add ZFS_IOC_TRACE envvar to enable ioctl tracing #17344 - lzc: move lzc_ioctl_fd() into lzc proper #17344 - libzfs: ensure all ioctl calls go through lzc_ioctl_fd() #17344 - Add Quality Assurance to pull request template #17354 - dmu_objset_hold_flags() should call dsl_dataset_rele_flags() on error #17353 - arcstat: prevent ZeroDivisionError when L2ARC becomes empty #17348 - Linux 6.2/6.15: del_timer_sync() renamed to timer_delete_sync() #17229 - Linux 6.15: mkdir now returns struct dentry * #17229 - icp: Use explicit_memset() exclusively in gcm_clear_ctx() #17343 - Fix 2 bugs in non-raw send with encryption #12014 #17340 - Cause zpool scan resume commands to get logged in history #17301 - ARC: Notify dbuf cache about target size reduction #17314 - Linux: Stop using NR_FILE_PAGES for ARC scaling #17334 - runners: Add option to install custom kernel on Fedora #17156 - vdev_id: symlinks creation for multipath disk partitions (#17331) - AUTHORS/mailmap: update with new contributors - update_authors: output possible mailmap additions - For the moment, this needs to be done by a human, because update_authors - update_authors: consider Signed-off-by trailers for committer idents - test-runner: rework output dir construction #17167 - spa: clear checkpoint information during retry #17319 - linux/uio: remove "skip" offset for UIO_ITER #17298 - More aggressively assert that db_mtx protects db.db_data #17209 - FreeBSD: Use new SYSCTL_SIZEOF() #17309 - ARC: Avoid overflows in arc_evict_adj() (#17255) - txg: generalise txg_wait_synced_sig() to txg_wait_synced_flags() (#17284) - ZTS: Restore some delays in online_offline tests - Fix race between resilver wait and offline/detach - tests: fix `S_IFMT` undeclared at `statx.c` #17293 #17294 - ZTS: Stop zpool_status tests from spamming stdout (#17292) - Fix double spares for failed vdev - ZTS: Fix replacement/resilver_restart_001 on FreeBSD #16822 #17279 - Sort the blocking snapshots list #12751 (#17264) - Double quote variables to prevent globbing and word splitting #17235 - cred: properly pass and test creds on other threads (#17273) - ZTS: Optimize KSM on Linux and remove it for FreeBSD #17247 - zfs-rollback.8: fix typo in example number #17282 - ZTS: Use Ubuntu default url for cloud-image #17278 - ZTS: Make zvol_stress write some more #17270 - ZTS: Reduce extra caching in pool_checkpoint (#17268) - Support using llvm-libunwind #17230 - Export correct symbols for Lustre Direct I/O #17256 - Add more descriptive destroy error message - ZTS: Fix 256MB file leak in zed_cksum_reported - ZTS: Update FreeBSD version numbers - ZTS: Remove fixed sleeps from slog_006_pos - ZTS: Polish online_offline tests - ZTS: Remove ashift setting from dedup_quota test (#17250) - Cleanup VERIFY() macros (#17163) - vdev_to_nvlist_iter: ignore draid parameters when matching names (#17228) - Improve L2 caching control for prefetched indirects #17204 - ZTS: Remove TXG_TIMEOUT from dedup_quota test (#17150) - Prefer embedded blocks to dedup #17113 - ZAP: Reduce leaf array and free chunks fragmentation #16766
#### Supported Platforms - **Linux**: compatible with 4.18 - 6.14 kernels - **FreeBSD**: compatible with releases starting from 12.2-RELEASE #### Changes - RPM: Hold back incompatible kernel packages on Fedora #17265 #17271 - CI: Add Fedora 42 runner (#17249) - GCC 15: Fix unterminated-string-initialization (#17244) - gcm_avx_init: zero the ghash state after hashing the IV - Fixed zfs_notify_email for programs like sendmail - config: fix ZFS_LINUX_TEST_RESULT_SYMBOL with --enable-linux-builtin #17236 - Linux 6.0 compat: Check for migratepage VFS (#17217) - debian: Add libtirpc-dev dependency (#17220) - Fix memory leaks in pool properties handling #17208 - Added fix for zpool get state segfaults with two or more vdevs (#15972). (#17213) - Fix FDT rollback to not overwrite unnecessary fields (#17205) - [2.3.2] uconv: add SPDX license tag - freebsd: unbreak module/Makefile.bsd build on 15-CURRENT-arm64 #17219 - Fix nonrot property being incorrectly unset (#17206) - Multiple printf() size fixes (#17199) - Fix lock reversal on device removal cancel #17164 - Fix dspace underflow bug #17183 - simd_powerpc.h: enable FPU on FreeBSD #17191 - spl_vfs: fix vrele task runner signature mismatch #17101 - ZTS: Fix zpool `dry run` tests output formating - ZTS: Fix zpool `dry run` tests depending on output format - contrib/initramfs: use LVM autoactivation for activating VGs (#17125) - zed: Ensure spare activation after kernel-initiated device removal #17187 - config: cache results of kernel checks (#17106) - Block remap for cloned blocks on device removal #15604 #17180 - runners: Fix tarball build for zfs-qemu-packages workflow (#17158) - runners: Fix zfs-release RPM creation (#17173) - Linux: Fix zfs_prune panics v2 (#17121) - ZTS: Fix zpool_status_features_001_pos local test (#17174) - Disambiguate reference to kibibytes, not kilobytes - Fix spelling errors - Correct "umount" to "unmount" in a couple of places - Capitalize in various places where appropriate - Fix cases where "descendent" is used as a noun - Make use of "i.e." (id est) consistent - Harmonize on American spelling in several places - CI: Remove FreeBSD 13.3 and 14.1 tests (#17162) - Updating dio_read_verify ZTS test (#16830) - Fix deadlock on I/O errors during device removal #17145 - Always perform bounds-checking in metaslab_free_concrete #17136 - convert_wycheproof: don't check tag len on invalid tests - convert_wycheproof: fix compile failure - dmu_tx: rename dmu_tx_assign() flags from TXG_* to DMU_TX_* (#17143) - spdxcheck: program to check SPDX license tags - SPDX: license tags: LicenseRef-OpenZFS-ThirdParty-PublicDomain - SPDX: license tags: OpenSSL-standalone - SPDX: license tags: Brian-Gladman-3-Clause - SPDX: license tags: BSD-2-Clause OR GPL-2.0-only - SPDX: license tags: BSD-3-Clause OR GPL-2.0-only - SPDX: license tags: LGPL-2.1-or-later - SPDX: license tags: GPL-2.0-or-later - SPDX: license tags: Apache-2.0 - SPDX: license tags: MIT - SPDX: license tags: BSD-3-Clause - SPDX: license tags: BSD-2-Clause - SPDX: license tags: CDDL-1.0 - ZTS: ICP encryption tests - ZTS: test clearing pool and vdev userprops #16887 - spa_sync_props: remove pool userprops by setting empty-string #16887 - Add receive:append permission for limited receive #17015 - Update FreeBSD CI images #17139 - Fix deduplication of overridden blocks #17120 - Linux/vnops: implement STATX_DIOALIGN #16972 - Verify every block pointer is either embedded, hole, or has a valid DVA #17078 - AUTHORS: refresh with recent new contributors - linux: zvols: correctly detect flush requests (#17131) - zed: Print return code on failed zpool_prepare_disk #17124 - Check portable objset MAC even if local is zeroed #17122 - Add more DDT tests #17049 - ZTS: replace uses of TMPDIR with mktemp - ZTS: make uses of mktemp consistent - ZTS: zfs-tests: set TMPDIR to FILEDIR - ZTS: test-runner: always apply timestamp to outputdir before updating - ZTS: runfiles: remove explicit outputdir - ZTS: zfs-tests: use configured FILEDIR for all temp paths - ZTS: replace all uses of /var/tmp with TEST_BASE_DIR - Linux 6.14 compat: META (#17098) (#17172) - Revert "zinject: count matches and injections for each handler" (#17137)
#### Supported Platforms - **Linux**: compatible with 4.18 - 6.13 kernels - **FreeBSD**: compatible with releases starting from 12.2-RELEASE #### Changes - Add 'zfs-qemu-packages' workflow for RPM building #17005 - Linux 6.13 compat: META (#17098) - zpool: allow relative vdev paths #17042 - arc: avoid possible deadlock in arc_read #17071 - Don't try to get mg of hole vdev in removal #17080 - spa: fix signature mismatch for spa_boot_init as eventhandler required #17088 - Better fill empty metaslabs #17081 - suspend_resume_single: clear pool errors on fail #17054 - include: move zio_priority_t into zfs.h - vdev_file: make FLUSH and TRIM asynchronous #17064 - Fix wrong free function in arc_hdr_decrypt #17079 - vdev_file: unify FreeBSD and Linux implementations (#17046) - Fix metaslab group fragmentation math (#17037) - range_tree: convert remaining range_* defs to zfs_range_* - Linux 6.12 compat: Rename range_tree_* to zfs_range_tree_* - Free memory in an error path in spl-kmem-cache.c #17041 - Update the dataset name in handle after zfs_rename (#17040) - zio: do no-op injections just before handing off to vdevs #17029 - Fix "make install" with DESTDIR set (#16995) #16994 - optimize recv_fix_encryption_hierarchy() #16929 - Add kstats tracking gang allocations #17003 - Expand fragmentation table to reflect larger possibile allocation sizes #16986 - Fix typos in zpool_do_scrub() error messages (#17028) - Clarify documentation of `zfs destroy` on snapshots (#17021) - Linux 6.14: BLK_MQ_F_SHOULD_MERGE was removed - Linux 6.14: dops->d_revalidate now takes four args - zio: lock parent zios when updating wait counts on reexecute #17016 - Avoid ARC buffer transfrom operations in prefetch #17013 - Add recursive dataset mounting and unmounting support to pam_zfs_key (#16857) - Update pin_user_pages() calls for Direct I/O #16956 #17006 - Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform #16980 - FreeBSD: Add setting of the VFCF_FILEREV flag - zinject: add "probe" device injection type #16947 - zinject: make iotype extendable #16947 - ZTS: remove get_arcstat - ZTS: update existing kstat users to new helper - ZTS: reimplement kstat helper function - Fix several typos in the man pages #16965 - zfs-destroy.8: Fix minor formatting typo #16962 - Update RELEASES.md LTS release to 2.2 #16945 #16948 - style: remove unnecessary spaces in sa.h #16955 - Makefile.in: pass ARCH for modules_install as well #16944 - zinject: count matches and injections for each handler #16938 - FreeBSD: Use ashift in vdev_check_boot_reserve() #16942 - ZTS: remove empty zpool_add--allow-ashift-mismatch test #16931