OpenZFS on Linux and FreeBSD https://openzfs.github.io/openzfs-docs
Find a file
Alek P 931deb290c
Prevent range tree corruption race by updating dnode_sync()
Switch to incremental range tree processing in dnode_sync() to avoid
unsafe lock dropping during zfs_range_tree_walk(). This also ensures
the free ranges remain visible to dnode_block_freed() throughout the
sync process, preventing potential stale data reads.

This patch:
 - Keeps the range tree attached during processing for visibility.
 - Processes segments one-by-one by restarting from the tree head.
 - Uses zfs_range_tree_clear() to safely handle ranges that may have
   been modified while the lock was dropped.
 - adds ASSERT()s to document that we don't expect dn_free_ranges
   modification outside of sync context.

Reviewed-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alek Pinchuk <apinchuk@axcient.com>
Issue #18186
Closes #18235
2026-03-23 18:34:19 -07:00
.github ci: update FreeBSD CI images from 14.3 to 14.4 2026-03-23 10:34:10 -07:00
cmd Make zpool status dedup table support raw bytes -p output 2026-03-13 09:53:56 -07:00
config Linux 7.0: autoconf: Remove copy-from-user-inatomic API checks (#18348) (#18354) 2026-03-23 09:19:41 -07:00
contrib pyzfs: update license tags/classifiers 2026-03-23 09:56:25 -07:00
etc build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
include Prevent range tree corruption race by updating dnode_sync() 2026-03-23 18:34:19 -07:00
lib Make zpool status dedup table support raw bytes -p output 2026-03-13 09:53:56 -07:00
man zpool-list.8: clarify that only imported pools are listed (#18352) 2026-03-23 09:21:08 -07:00
module Prevent range tree corruption race by updating dnode_sync() 2026-03-23 18:34:19 -07:00
rpm build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
scripts pyzfs: update license tags/classifiers 2026-03-23 09:56:25 -07:00
tests ZTS: Fix L2ARC test reliability 2026-03-16 14:58:25 -07:00
udev build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
.gitmodules .gitmodules: link to openzfs github repository 2021-04-12 09:37:23 -07:00
.mailmap AUTHORS: add names of recent new contributors 2026-02-09 10:11:09 -08:00
AUTHORS AUTHORS: add names of recent new contributors 2026-02-09 10:11:09 -08:00
autogen.sh build: add SPDX license tags to build system files 2026-01-08 15:08:03 -08:00
CODE_OF_CONDUCT.md Documentation corrections 2022-12-22 11:34:28 -08:00
configure.ac Linux build: handle CONFIG_OBJTOOL_WERROR=y 2025-06-16 08:12:09 -07:00
copy-builtin CI: Test & fix Linux ZFS built-in build 2026-02-19 10:15:41 -08:00
COPYRIGHT Fix typos 2020-06-09 21:24:09 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am Zstd: Integrate v1.5.7 into the ZFS build system 2026-01-20 13:41:06 -08:00
META Linux 6.19 compat: META 2026-02-11 09:37:02 -08:00
NEWS Fix NEWS file 2020-08-26 21:44:41 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md README: add FreeBSD 14.4-RELEASE alongside 15.0 2026-03-12 19:02:45 -07:00
RELEASES.md Update RELEASES.md LTS release to 2.2 2025-01-17 11:04:36 -05:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

img

OpenZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community. This repository contains the code for running OpenZFS on Linux and FreeBSD.

codecov coverity

Official Resources

Installation

Full documentation for installing OpenZFS on your favorite operating system can be found at the Getting Started Page.

Contribute & Develop

We have a separate document with contribution guidelines.

We have a Code of Conduct.

Release

OpenZFS is released under a CDDL license. For more details see the NOTICE, LICENSE and COPYRIGHT files; UCRL-CODE-235197

Supported Kernels and Distributions

Linux

Given the wide variety of Linux environments, we prioritize development and testing on stable, supported kernels and distributions.

Kernel (kernel.org)

All longterm kernels from kernel.org are supported. stable kernels are usually supported in the next OpenZFS release.

Supported longterm kernels: 6.18, 6.12, 6.6, 6.1, 5.15, 5.10.

Red Hat Enterprise Linux (RHEL)

All RHEL (and compatible systems: AlmaLinux OS, Rocky Linux, etc) on the full or maintenance support tracks are supported.

Supported RHEL releases: 8.10, 9.7, 10.1.

Ubuntu

All Ubuntu LTS releases are supported.

Supported Ubuntu releases: 24.04 “Noble”, 22.04 “Jammy”.

Debian

All Debian stable and LTS releases are supported.

Supported Debian releases: 13 “Trixie”, 12 “Bookworm”, 11 “Bullseye”.

Other Distributions

Generally, if a distribution is following an LTS kernel, it should work well with OpenZFS.

FreeBSD

All FreeBSD releases receiving security support are supported by OpenZFS.

Supported FreeBSD releases: 15.0, 14.4, 13.5.