Early on I thought it would be necessary to stop the world making progress under us, and taking the namespace lock was my initial idea of how to do that. The right way is a bit more nuanced than that, but as it turns out, we don't even need it. To fail the ZIL is effectively to stop it in its tracks and hold onto all itxs stored within until they operations they represent are committed to the pool by some other means (ie the regular txg sync). It doesn't matter if the pool makes progress while we're doing this. If the pool does progress, then zil_clean() will be called to process any itxs now completed. That will be to take the itxg_lock, process and destroy the itxs, and release the lock, leaving the itxg empty. If zil_fail() is running at the same time, then either zil_clean() will have cleaned up the itxg and zil_fail() will find it empty, or zil_fail() will get there first and empty it onto the fail itxg. (cherry picked from commit 83ce694898f5a89bd382dda0ba09bb8a04ac5666) |
||
---|---|---|
.github | ||
cmd | ||
config | ||
contrib | ||
etc | ||
include | ||
lib | ||
man | ||
module | ||
rpm | ||
scripts | ||
tests | ||
udev | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
AUTHORS | ||
CODE_OF_CONDUCT.md | ||
COPYRIGHT | ||
LICENSE | ||
META | ||
Makefile.am | ||
NEWS | ||
NOTICE | ||
README.md | ||
RELEASES.md | ||
TEST | ||
autogen.sh | ||
configure.ac | ||
copy-builtin | ||
zfs.release.in |
README.md
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.
Official Resources
- Documentation - for using and developing this repo
- ZoL Site - Linux release info & links
- Mailing lists
- OpenZFS site - for conference videos and info on other platforms (illumos, OSX, Windows, etc)
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 12.2-RELEASE.