OpenZFS on Linux and FreeBSD
Go to file
Chunwei Chen e68e938f54 Fix zfs_get_data access to files with wrong generation
If TX_WRITE is create on a file, and the file is later deleted and a new
directory is created on the same object id, it is possible that when
zil_commit happens, zfs_get_data will be called on the new directory.
This may result in panic as it tries to do range lock.

This patch fixes this issue by record the generation number during
zfs_log_write, so zfs_get_data can check if the object is valid.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <david.chen@nutanix.com>
Closes #10593
Closes #11682
2021-06-23 13:22:15 -07:00
.github CI: Increase free space in workflow 2021-06-23 13:22:14 -07:00
cmd zed: reap child after killing on time-out 2021-06-23 13:22:15 -07:00
config linux 5.13 compat: bdevops->revalidate_disk() removed (#12122) 2021-06-23 13:22:15 -07:00
contrib dracut: Fix race condition between load-key and import 2021-02-05 11:40:33 -08:00
etc zfs-import-{cache,scan}: change condition to FileNotEmpty 2021-02-05 11:42:40 -08:00
include zfs_vnops: make zfs_get_data OS-independent 2021-06-23 13:22:15 -07:00
lib receive: don't fail inheriting (-x) properties on wrong dataset type 2021-06-23 13:22:14 -07:00
man zed: reap child after killing on time-out 2021-06-23 13:22:15 -07:00
module Fix zfs_get_data access to files with wrong generation 2021-06-23 13:22:15 -07:00
rpm RPM: Explicitly set the required min/max kernel version for the DKMS package 2021-06-23 13:22:15 -07:00
scripts DKMS: Disable weak modules 2020-12-23 14:34:59 -08:00
tests ZTS: Fix xattr_002_neg passing too soon 2021-06-23 13:22:15 -07:00
udev Centralize variable substitution 2020-07-14 17:33:44 -07:00
.editorconfig Add an .editorconfig; document git whitespace settings 2020-01-27 13:32:52 -08:00
.gitignore Add FreeBSD support to OpenZFS 2020-04-14 11:36:28 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add zstd support to zfs 2020-08-20 10:30:06 -07:00
CODE_OF_CONDUCT.md Replace ZFS on Linux references with OpenZFS 2020-10-16 13:01:24 -07: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 Tag zfs-2.0.4 2021-03-08 13:04:37 -08:00
Makefile.am Fix 'make checkbashisms` warnings 2021-06-23 13:22:14 -07:00
NEWS Fix NEWS file 2020-08-27 16:07:01 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md docs: update README's installation link 2020-10-16 13:00:13 -07:00
TEST Remove CI builder customization from TEST 2020-03-16 10:46:03 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
configure.ac ZTS: Add tests for DOS mode attributes 2021-06-23 13:22:14 -07:00
copy-builtin Replace ZFS on Linux references with OpenZFS 2020-10-16 13:01:24 -07:00
cppcheck-suppressions.txt Import ZStandard v1.4.5 2020-08-20 10:30:06 -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 12-STABLE and 13-CURRENT.