OpenZFS on Linux and FreeBSD
Go to file
Brian Atkinson 6e0ffaf627 Updating based on PR Feedback(3)
1. Unified the block cloning and Direct I/O code paths further. As part
   of this unification, it is important to outline that Direct I/O
   writes transition the db_state to DB_UNCACHED. This is used so that
   dbuf_unoverride() is called when dbuf_undirty() is called. This is
   needed to cleanup space accounting in a TXG. When a dbuf is redirtied
   through dbuf_redirty(), then dbuf_unoverride() is also called to
   clean up space accounting. This is a bit of a different approach that
   block cloning, which always calls dbuf_undirty().
2. As part of uniying the two, Direct I/O also performs the same check
   in dmu_buf_will_fill() so that on failure the previous contents of
   the dbuf are set correctly.
3. General just code cleanup removing checks that are no longer
   necessary.

Signed-off-by: Brian Atkinson <batkinson@lanl.gov>
2024-09-04 17:08:56 -06:00
.github Github workflow: fix typo in `zloop` artifact 2024-08-09 16:49:19 -07:00
cmd Adding Direct IO Support 2024-09-04 17:06:56 -06:00
config Adding Direct IO Support 2024-09-04 17:06:56 -06:00
contrib Add DDT prune command 2024-09-04 14:17:02 -07:00
etc etc/init.d: decide which variant to use at build time. 2024-04-08 16:52:24 -07:00
include Updating based on PR Feedback(3) 2024-09-04 17:08:56 -06:00
lib Updating based on PR Feedback(1) 2024-09-04 17:08:56 -06:00
man Updating based on PR Feedback(1) 2024-09-04 17:08:56 -06:00
module Updating based on PR Feedback(3) 2024-09-04 17:08:56 -06:00
rpm Linux 6.10 compat: fix rpm-kmod and builtin 2024-08-15 14:00:18 -07:00
scripts disable automatic dependency tracking for dkms builds 2024-06-13 18:08:49 -07:00
tests Adding Direct IO Support 2024-09-04 17:06:56 -06:00
udev udev: correctly handle partition #16 and later 2024-03-21 16:38:24 -07:00
.cirrus.yml CI: add FreeBSD build with Cirrus CI 2023-10-06 08:50:26 -07: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: refresh with recent new contributors (#16362) 2024-07-23 11:47:04 -07:00
AUTHORS AUTHORS: refresh with recent new contributors (#16362) 2024-07-23 11:47:04 -07:00
CODE_OF_CONDUCT.md Documentation corrections 2022-12-22 11:34:28 -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
META Linux 6.10 compat: META 2024-08-21 17:38:06 -07:00
Makefile.am Process `script` directory for all configs 2022-10-27 16:45:14 -07: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 FreeBSD: remove support for FreeBSD < 13.0-RELEASE (#16372) 2024-08-05 16:56:45 -07:00
RELEASES.md Add RELEASES.md file 2021-04-02 16:33:40 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
autogen.sh Ubuntu 22.04 integration: ShellCheck 2022-11-18 11:24:48 -08:00
configure.ac Packaging: Auto-generate changelog during configure (#15528) 2023-11-16 08:58:47 -08:00
copy-builtin copy-builtin: add hooks with sed/>> 2022-05-10 10:17:43 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.md

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

  • The META file contains the officially recognized supported Linux kernel versions.
  • Supported FreeBSD versions are any supported branches and releases starting from 13.0-RELEASE.