Supported Platforms
- Linux: compatible with 4.18 - 6.12 kernels
- FreeBSD: compatible with releases starting from 12.2-RELEASE
Changes
- add get_name implementation for exports. (#16833)
- Fix race in libzfs_run_process_impl #16801
- Linux: Fix detection of register_sysctl_sz
- Linux: Fix zfs_prune panics #16770
- Linux 6.12 compat: META #16793
- BRT: Don't call brt_pending_remove() on holes/embedded #16740
- ZTS: Avoid embedded blocks in bclone/bclone_prop_sync #16740
- Pack dmu_buf_impl_t by 16 bytes #16684
- FreeBSD: Add missing memory reclamation accounting
- FreeBSD: restore zfs_znode_update_vfs() #16554
- FreeBSD: Add const qualifier to members of struct opensolaris_utsname #16210
- freebsd: remove __FBSDID macro use #15527
- freebsd: Use compiler.h from FreeBSD's base's linuxkpi #16650
- Add custom debug printing for your asserts #15792
- Linux 6.12: PG_error flag was removed #16582
- Linux 6.12: f_version removed from struct file #16582
- Linux 6.12: FMODE_UNSIGNED_OFFSET is now FOP_UNSIGNED_OFFSET #16582
- Linux 6.12: support 3arg dequeue_signal() without task param #16582
- Linux 6.12: avoid kmem_cache_create redefinition #16582
- [zfs-2.2.7] Add vdev_check_boot_reserve() to vdev.h
- zfs_debug: specific variant for userspace #16492
- zdb/ztest: send dbgmsg output to stderr #16181
- zfs_dbgmsg_print: make FreeBSD and Linux consistent #16181
- zfs_znode: lift common code to a single shared file #16492
- FreeBSD: remove support for FreeBSD < 13.0-RELEASE (#16372)
- zfs_racct: copy Linux implementation for userspace #16492
- libzpool: don't include trace.c #16492
- vdev_label_os: copy Linux implementation for userspace #16492
- arc_os: split userspace and Linux kernel code #16492
- value strings: pretty printers for flags and enums
- abd_os: break out platform-specific header parts #16253
- abd_os: split userspace and Linux kernel code
- Sponsored-by: Wasabi Technology, Inc. #16253
- linux/abd_os: remove kernel version check for compound page support #16545
- zfs_file: rename zfs_file_fallocate to zfs_file_deallocate #16496
- Add SIMD metadata in /proc on Linux follow up #16552
- Increase L2ARC write rate and headroom #15457
- config: fix page_mapping test #16479
- config: fix various bits of missing output #16479
- config: remove test for unused s_d_op #16479
- config: remove HAVE_MODE_LOOKUP_BDEV #16479
- config: remove HAVE_HAS_CAPABILITY #16479
- config: remove HAVE_BIO_SET_DEV #16479
- config: rework ZFS_GENHD_FL_* #16479
- config: remove HAVE_GENERIC_IO_ACCT_3ARG #16479
- config: remove HAVE_VFSMOUNT_IOPS_GETATTR #16479
- config: remove HAVE_GENERIC_READLINK #16479
- linux/zvol_os: convert END_IO macro to inline function #16479
- config: remove HAVE_BLK_MQ #16479
- config: remove HAVE_BLK_QUEUE_FLAG_* #16479
- config: remove ZFS_GLOBAL_ZONE_PAGE_STATE and ZFS_ENUM_* generation #16479
- config: remove ZFS_GLOBAL_ZONE_PAGE_STATE #16479
- config: remove HAVE_WAIT_QUEUE_* #16479
- config: remove HAVE_TMPFILE #16479
- config: remove HAVE_SUPER_SETUP_BDI_NAME #16479
- config: remove HAVE_SIGNAL_STOP #16479
- config: remove HAVE_SET_SPECIAL_STATE #16479
- config: remove HAVE_SCHED_SIGNAL_HEADER #16479
- config: remove HAVE_PERCPU_COUNTER_ADD_BATCH #16479
- config: remove HAVE_KVMALLOC #16479
- config: remove HAVE_KTIME_GET_RAW_TS64 #16479
- config: remove HAVE_KTIME_GET_COARSE_REAL_TS64 #16479
- config: remove HAVE_KMEM_CACHE_CREATE_USERCOPY #16479
- config: remove HAVE_KERNEL_TIMER_SETUP #16479
- config: remove HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST #16479
- config: remove HAVE_KERNEL_(READ|WRITE)_PPOS #16479
- config: remove HAVE_INODE_TIMESPEC64_TIMES #16479
- config: remove HAVE_INODE_SET_IVERSION #16479
- config: remove HAVE_FILEMAP_RANGE_HAS_PAGE #16479
- config: remove HAVE_FILE_FADVISE #16479
- config: remove HAVE_BIO_BI_STATUS and bio error compat #16479
- config: remove HAVE_ACL_REFCOUNT #16479
- config: remove HAVE_[24]ARGS_VFS_GETATTR #16479
- config: remove HAVE_BLK_QUEUE_SECDISCARD #16479
- config: remove HAVE_RENAME2 #16479
- config: remove HAVE_GENERIC_SETXATTR #16479
- config: remove HAVE_FILE_AIO_FSYNC #16479
- config: remove ZFS_GLOBAL_NODE_PAGE_STATE #16479
- config: remove HAVE_XATTR_GET_DENTRY_INODE #16479
- config: remove HAVE_XATTR_LIST_SIMPLE #16479
- config: remove HAVE_XATTR_(GET|SET|LIST)_HANDLER #16479
- config: remove HAVE_XATTR_HANDLER_NAME #16479
- config: remove HAVE_VFS_ITERATE/HAVE_VFS_ITERATE_SHARED #16479
- config: remove HAVE_VFS_COPY_FILE_RANGE #16479
- config: remove HAVE_SUPER_USER_NS #16479
- config: remove HAVE_REQ_OP_* and HAVE_REQ_* #16479
- config: remove HAVE_(GET|PUT)_LINK_DELAYED #16479
- config: remove HAVE_POSIX_ACL_VALID_WITH_NS #16479
- config: remove HAVE_KERNEL_GET_ACL_HANDLE_CACHE #16479
- config: remove HAVE_INODE_LOCK_SHARED #16479
- config: remove HAVE_IN_COMPAT_SYSCALL #16479
- config: remove HAVE_GROUP_INFO_GID #16479
- config: remove HAVE_CURRENT_TIME #16479
- config: remove HAVE_CPU_HOTPLUG #16479
- config: remove HAVE_BLK_QUEUE_WRITE_CACHE/HAVE_BLK_QUEUE_FLUSH #16479
- config: remove HAVE_BIO_BI_OPF #16479
- config: remove HAVE_1ARG_SUBMIT_BIO #16479
- config: remove HAVE_GET_LINK_COOKIE #16479
- config: remove HAVE_RENAME2_OPERATIONS_WRAPPER #16479
- config: remove HAVE_VFS_FILE_OPERATIONS_EXTEND #16479
- config: remove HAVE_NEW_SYNC_READ #16479
- config: remove HAVE_XATTR_(GET|SET|LIST)_DENTRY #16479
- config: remove HAVE_WAIT_ON_BIT_ACTION #16479
- config: remove HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET #16479
- config: remove HAVE_PUT_LINK_NAMEIDATA #16479
- config: remove HAVE_LSEEK_EXECUTE #16479
- config: remove HAVE_FOLLOW_LINK_NAMEIDATA #16479
- config: remove HAVE_D_REVALIDATE_NAMEIDATA #16479
- config: remove HAVE_3ARGS_VFS_GETATTR #16479
- config: remove HAVE_3ARGS_BDI_SETUP_AND_REGISTER #16479
- config: remove SHRINK_CONTROL_HAS_NID #16479
- config: remove HAVE_VFS_RW_ITERATE #16479
- config: remove HAVE_USER_NS_COMMON_INUM #16479
- config: remove HAVE_SPLIT_SHRINKER_CALLBACK and HAVE_SINGLE_SHRINKER_CALLBACK #16479
- config: remove HAVE_SET_CACHED_ACL_USABLE #16479
- config: remove HAVE_SET_ACL #16479
- config: remove HAVE_POSIX_ACL_RELEASE and HAVE_POSIX_ACL_RELEASE_GPL_ONLY #16479
- config: remove HAVE___POSIX_ACL_CHMOD #16479
- config: remove HAVE_PERCPU_COUNTER_INIT_WITH_GFP #16479
- config: remove HAVE_LINUX_BLK_CGROUP_HEADER #16479
- config: remove HAVE_KERNEL_TIMER_LIST_FLAGS #16479
- config: remove HAVE_KERNEL_STRSCPY #16479
- config: remove HAVE_IO_SCHEDULE_TIMEOUT #16479
- config: remove HAVE_INODE_SET_FLAGS #16479
- config: remove HAVE_GENERIC_WRITE_CHECKS_KIOCB #16479
- config: remove HAVE_FSYNC_RANGE #16479
- config: remove HAVE_FILE_INODE #16479
- config: remove HAVE_FILE_DENTRY #16479
- config: remove HAVE_FALLOC_FL_ZERO_RANGE #16479
- config: remove HAVE_ENCODE_FH_WITH_INODE #16479
- config: remove HAVE_D_PRUNE_ALIASES #16479
- config: remove HAVE_D_MAKE_ROOT #16479
- config: remove HAVE_DIRTY_INODE_WITH_FLAGS #16479
- config: remove HAVE_DENTRY_D_U_ALIASES #16479
- config: remove HAVE_CLEAR_INODE and HAVE_EVICT_INODE #16479
- config: remove HAVE_BIO_BVEC_ITER #16479
- config: remove HAVE_1ARG_BIO_END_IO_T #16479
- Use kmap_local_page instead of kmap_atomic (#16329)
- zvol: ensure device minors are properly cleaned up #14872 #16364
- zvol_impl: document and tidy flags #16364
- Fix issig() to check signal_pending after dequeue SIGSTOP/SIGTSTP #16464
- Simplify issig(). #16225
- Allow block cloning to be interrupted by a signal. #16208
- Linux: Report reclaimable memory to kernel as such (#16385)
- Replace usage of schedule_timeout with schedule_timeout_interruptible (#16150) #16150
- config: remove checks with unused defines #16479
- Linux 6.10 compat: Fix tracepoints definitions #16475 #16515
- vdev_disk: move abd return and free off the interrupt handler #16687
- Updating bash completion build file #16422
- contrib: bash_completion.d: force zpool symlink recreation #16423
- contrib/bash_completion.d: squelch FreeBSD seq when first < last #16234
- Verify parent_dev before calling udev_device_get_sysattr_value #16705 #16717
- zdb: add extra -T flag to show histograms of BRT refcounts #16692
- vdev_disk: try harder to ensure IO alignment rules #16687
- On the first vdev open ignore impossible ashift hints #16690
- Fix gcc uninitialized warning in FreeBSD zio_crypt.c #16688
- Fix gcc unused value warning in FreeBSD simd.h #16693
- zdb: show bp in uberblock dump #16667
- Fix inconsistent mount options for ZFS root #16646
- Fallback to strerror() when strerror_l() isn't available #16636 #16640
- libzfs: use zfs_strerror() in place of strerror() #15793
- Only serialize native-deb* targets #16622
- Fix generation of kernel uevents for snapshot rename on linux #14223 #16600
- Update path for zed in zfs-zed.service for native debian packages
- Disable parallel build for native-deb* targets
- Fix missing packaging files from release tarballs
- ARC: Cache arc_c value during arc_evict() #16576 #16605
- Avoid computing strlen() inside loops #16584
- lua: add flex array field to TString type #16541 #16583
- man: update recordsize max size info #16581
- Properly release key in spa_keystore_dsl_key_hold_dd() #16567
- FreeBSD: Sync taskq_cancel_id() returns with Linux #16565
- Add missing guard defines for simd_stat #16558
- Fix /proc/spl/kstat/simd on x86 #16556
- Add SIMD metadata in /proc on Linux #16530
- Evicting too many bytes from MFU metadata #16521 #16546
- Reduce and handle EAGAIN errors on AIO label reads #16551
- Add compatibility file for GRUB versions up to v2.06 #13873 #15261 #15909
- Fix handling of DNS names with '-' in them for sharenfs #16529
- sa_impl: fix SA header bitfield docs #16500
- Fix an uninitialized data access (#16511)
- zdb: fix BRT dump (#16335)
- ZTS: Add Fedora 41, remove Fedora 39 #16700
- ZTS: Add LUKS sanity test #16681
- Fix dependency install on Debian 11 (#16683)
- ZTS: Add additional exceptions #16670
- ZTS: Make use of optimal CPU pinning #16641
- ZTS: Optimize Kernel Same-page Merging (KSM) #16641
- CI: Stick with ubuntu-22.04 for CodeQL analysis #16639
- ZTS: Fix summary page creation again - second try #16611
- ZTS: Remove FreeBSD 13.4-STABLE #16610
- ZTS: Fix summary page creation #16599
- ZTS: Replace MD5 and SHA256 wit XXH128 #16577
- ZTS: Fix zpool_import_hostid_changed_unclean_export #16578
- ZTS: Update deadman_sync threshold #16575
- CI: Add logs to zloop workflow #16573
- ZTS: Fix zpool_import_hostid_changed_cachefile_unclean_export #16570
- CI: run only sanity check on limited OSes for nonbehavioral changes #16564
- CI: cancel workflows when PRs are updated (#16562) #16562
- ZTS: CI Documentation Updates #16561
- ZTS: CodeQL Action v3 update #16560
- ZTS: Add additional exceptions #16553
- ZTS: Retire "tmpfile_reason" exception #16553
- ZTS: Retire "ci_reason" exceptions #16553
- ZTS: Fix Summary Page #16555
- ZTS: Fix skipping over comment lines in zpool_create.shlib #15909
- ZTS: Remove functional tests via matrix #16549
- ZTS: Fix Test Summary page generation #16549
- ZTS: use openssl for md5digest and sha256digest #16543
- ZTS: Use QEMU for tests on Linux and FreeBSD #16537
- ZTS: increase timeout of mmap_sync_001_pos #16537
- ZTS: fix zpool_status_008_pos test on qemu vm's #16537
- zts-report: don't crash on non-UTF-8 chars in the log (#16497)
- Github workflow: fix typo in
zloop
artifact #16432 - tests: user_property_001_pos: Remove unnecessary evals #16248
- tests: user_property: Clarify comments #16248
- ZTS: small fix for SEEK_DATA/SEEK_HOLE tests (#16413)
- zed: Add deadman-slot_off.sh zedlet #16226
- ZTS: remove skips for zvol_misc tests #16364
- Linux 6.11 compat: META #16586
- META: set Linux minimum version to 4.18 #16479
- zfs_log: add flex array fields to log record structs #16501 #16539
- Cleanup DB_DNODE() macros usage #16374