Go to file
Serapheim Dimitropoulos bbbe4b0a98 hdr_recl calls zthr_wakeup() on destroyed zthr
There exists a race condition were hdr_recl() calls
zthr_wakeup() on a destroyed zthr. The timeline is the
following:

[1] hdr_recl() runs first and goes intro zthr_wakeup()
    because arc_initialized is set.
[2] arc_fini() is called by another thread, zeroes
    that flag, destroying the zthr, and goes into
    buf_init().
[3] hdr_recl() tries to enter the destroyed mutex
    and we blow up.

This patch ensures that the ARC's zthrs are not offloaded
any new work once arc_initialized is set and then destroys
them after all of the ARC state has been deleted.

Reviewed by: Matt Ahrens <matt@delphix.com>
Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Serapheim Dimitropoulos <serapheim@delphix.com>
Closes #9047
2019-09-25 11:27:50 -07:00
.github Update CONTRIBUTING to point users to IRC as well as mailing list 2019-03-13 11:57:57 -07:00
cmd systemd encryption key support 2019-09-25 11:27:49 -07:00
config Minor style cleanup 2019-09-25 11:27:49 -07:00
contrib Fix out-of-tree build failures 2019-09-25 11:27:48 -07:00
etc systemd encryption key support 2019-09-25 11:27:49 -07:00
include Retire unused spl_{mutex,rwlock}_{init_fini} 2019-09-25 11:27:49 -07:00
lib Fix race in parallel mount's thread dispatching algorithm 2019-09-25 11:27:49 -07:00
man systemd encryption key support 2019-09-25 11:27:49 -07:00
module hdr_recl calls zthr_wakeup() on destroyed zthr 2019-09-25 11:27:50 -07:00
rpm pkg-utils python sitelib for SLES15 2019-09-25 11:27:49 -07:00
scripts Fix out-of-tree build failures 2019-09-25 11:27:48 -07:00
tests Fix ZTS killed processes detection 2019-09-25 11:27:49 -07:00
udev Add enclosure_symlinks option to vdev_id 2018-12-14 17:27:49 -08:00
.gitignore git ignore python 3.7 virtual environment directories 2019-03-25 15:05:26 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
.travis.yml Add .travis.yml 2017-11-13 09:18:18 -08:00
AUTHORS Update build system and packaging 2018-05-29 16:00:33 -07:00
autogen.sh Cause autogen.sh to fail if autoreconf fails 2018-07-06 09:27:37 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md 2019-04-30 10:58:45 -07:00
configure.ac Fix out-of-tree build failures 2019-09-25 11:27:48 -07:00
copy-builtin Allow copy-builtin to work with modified sources 2018-10-17 12:06:05 -07:00
COPYRIGHT Update build system and packaging 2018-05-29 16:00:33 -07:00
LICENSE Update build system and packaging 2018-05-29 16:00:33 -07:00
Makefile.am Fix out-of-tree build failures 2019-09-25 11:27:48 -07:00
META Tag zfs-0.8.1 2019-06-14 09:43:18 -07:00
NEWS Add NEWS file 2018-09-18 12:03:47 -07:00
NOTICE Update build system and packaging 2018-05-29 16:00:33 -07:00
README.md Explicitly state supported Linux versions 2018-05-30 20:11:19 -07:00
TEST Update build system and packaging 2018-05-29 16:00:33 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

img

ZFS on Linux is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the OpenZFS community.

codecov coverity

Official Resources

Installation

Full documentation for installing ZoL on your favorite Linux distribution can be found at our site.

Contribute & Develop

We have a separate document with contribution guidelines.

Release

ZFS on Linux 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 kernel versions.