# OpenZFS zfs-2.3.7 - Product: OpenZFS (https://whatsnew.fyi/product/openzfs) - Vendor: OpenZFS - Date: 2026-05-12 - Version: zfs-2.3.7 - Original notes: https://github.com/openzfs/zfs/releases/tag/zfs-2.3.7 - Permalink: https://whatsnew.fyi/product/openzfs/releases/zfs-2.3.7 - Labels: Platforms: Linux What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — don't add __GFP_RECLAIMABLE for KM_VMEM allocations - **fixed** — don't add __GFP_COMP for KM_VMEM allocations - **fixed** — don't pass __GFP_HIGHMEM to __vmalloc - **fixed** — Fix uu_ident.c strchr() - **changed** — follow symlinks when resolving path via statx in libspl/mnttab - **fixed** — Fix vdev_rebuild_range() tx commit - **fixed** — Fix redundant declaration of dsl_pool_t - **changed** — access dentry d_alias directly for Linux 7.1 - **fixed** — Initialize vr_last_txg for rebuild - **fixed** — Fix rare cksum errors after rebuild - **fixed** — Fix 'kernel BUG at mm/usercopy.c' - **fixed** — avoid UAF in dmu_write_direct_done() - **fixed** — Prevent range tree corruption race by updating dnode_sync() - **fixed** — use zfs_panic_recover() for partial-overlap remove in range_tree - **fixed** — Fix read corruption after block clone after truncate - **fixed** — Fix s_active leak in zfsvfs_hold() when z_unmounted is true - **fixed** — fix memleak in spa_errlog.c - **changed** — enforce SPDX license tags on build system files - **changed** — draid: fix cksum errors after rebuild with degraded disks - **fixed** — draid: fix import failure after disks replacements ###### Supported Platforms - **Linux**: compatible with 4.18 - 7.0 kernels - **FreeBSD**: compatible with releases starting from 13.3+, 14.0+ ###### Changes - kmem: don't add __GFP_RECLAIMABLE for KM_VMEM allocations #18107 - kmem: don't add __GFP_COMP for KM_VMEM allocations #18053 - kmem: don't pass __GFP_HIGHMEM to __vmalloc #18053 - [2.3.7-only] GCC: Fix uu_ident.c strchr() - libspl/mnttab: follow symlinks when resolving path via statx (#18469) - Fix vdev_rebuild_range() tx commit #18276 - Fix redundant declaration of dsl_pool_t #18263 - CI: FreeBSD 15.1 PRERELEASE (#18490) - CI/GCC: Add Fedora 44, fix build errors and threadsappend #18478 - Linux 7.1: access dentry d_alias directly #18471 - Remove the obsolete FreeBSD 14.2-RELEASE from CI #18013 - During CI, use `nproc` instead of `sysctl -n hw.ncpu` #18012 - Initialize vr_last_txg for rebuild #18482 - Fix rare cksum errors after rebuild #18307 #18319 #18473 - ZTS: add targeted redundancy_draid_spare exception #18436 - build: use pax tar format for make dist - CI: curl fallback, print killed tests, FreeBSD URL #18460 - Fix 'kernel BUG at mm/usercopy.c' #15918 #18408 - dmu_direct: avoid UAF in dmu_write_direct_done() #18440 - Prevent range tree corruption race by updating dnode_sync() #18235 - range_tree: use zfs_panic_recover() for partial-overlap remove #18255 - Fix read corruption after block clone after truncate #18412 #18421 - ZTS: add regression test for #17180 #18109 - Fix s_active leak in zfsvfs_hold() when z_unmounted is true #18309 #18310 - fix memleak in spa_errlog.c #18403 - [zfs-2.3.7] Whitelist some Makefile.am files from SPDX - spdxcheck: enforce SPDX license tags on build system files #18077 - build: add SPDX license tags to build system files #18077 - CI: Add more debugging to qemu-1-setup.sh #18441 - CI: Do not set scheduler in qemu-1-setup.sh #18437 - CI: tolerate missing artifacts #18438 - Linux 7.0 compat: META #18435 - ZTS: resilver_restart_001 improvements #18434 - deb.am: propagate build errors in native-deb targets #18206 #18424 - draid: fix cksum errors after rebuild with degraded disks #18414 - RAIDZ: Remove some excessive logging #18059 - CI: set /etc/hostid in zloop runner #18413 - draid: allow seq resilver reads from degraded vdevs #18405 - Linux: Refactor zpl_fadvise() #18395 - linux/vfsops: remove zfs_mnt_t, pass directly #18377 - linux/super: work around kernels that enforce "forbidden" mount options #18377 - linux/super: implement new mount params parser #18377 - linux/super: match vfs_t lifetime to fs_context #18377 - linux/super: remove zpl_parse_monolithic #18377 - linux/vfsops: remove old options parser #18377 - linux/vfsops: add vfs_t allocator, make public #18377 - draid: fix import failure after disks replacements #18380 - Linux 7.0: ensure LSMs get to process mount options #18376 - dmu_tx: break tx assign/wait when pool suspends #17355 - dmu_tx: make DMU_TX_* flags an enum #17355 - txg_wait_synced_flags: add TXG_WAIT_SUSPEND flag to not wait if pool suspended #17355 - Linux 7.0: autoconf: Remove copy-from-user-inatomic API checks (#18348) (#18354) - linux/super: flatten zpl_fill_super into zpl_get_tree #18339 - linux/super: flatten zpl_mount_impl into zpl_get_tree #18339 - linux/super: flatten mount/remount into get_tree/reconfigure #18339 - linux/super: remove support for old mount API #18339 - config: refuse to build without fs_context #18339 - Linux 7.0: also set setlease handler on directories (#18331) - ZTS: Add back redundancy_draid_spare3 exception #18320 - ZTS: redundancy_draid_spare{1,3} exceptions #18308 - config: fix STATX_MNT_ID detection #18312 - draid: fix data corruption after disk clear #18286 #18294 - Fix deadlock on dmu_tx_assign() from vdev_rebuild() #18210 #18258 - dmu_tx_assign: make all VERIFY0 calls use DMU_TX_SUSPEND #17355 - README: describe specific kernels/distros we target #18295 - config: remove minimum kernel version check #18295 - _[Truncated at 4000 characters — full notes: https://github.com/openzfs/zfs/releases/tag/zfs-2.3.7]_