OpenZFS on Linux and FreeBSD
Go to file
Tom Caputi edc1e713c2 Fix race in dnode_check_slots_free()
Currently, dnode_check_slots_free() works by checking dn->dn_type
in the dnode to determine if the dnode is reclaimable. However,
there is a small window of time between dnode_free_sync() in the
first call to dsl_dataset_sync() and when the useraccounting code
is run when the type is set DMU_OT_NONE, but the dnode is not yet
evictable, leading to crashes. This patch adds the ability for
dnodes to track which txg they were last dirtied in and adds a
check for this before performing the reclaim.

This patch also corrects several instances when dn_dirty_link was
treated as a list_node_t when it is technically a multilist_node_t.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tom Caputi <tcaputi@datto.com>
Closes #7147 
Closes #7388
2018-04-10 11:15:05 -07:00
.github Reduce codecov PR comments 2018-01-09 11:15:55 -08:00
cmd systemd mount generator and tracking ZEDLET 2018-04-06 14:11:09 -07:00
config Linux compat 4.16: blk_queue_flag_{set,clear} 2018-04-10 10:32:14 -07:00
contrib Fix "file is executable, but no shebang" warnings 2018-04-06 16:34:21 -07:00
etc systemd mount generator and tracking ZEDLET 2018-04-06 14:11:09 -07:00
include Fix race in dnode_check_slots_free() 2018-04-10 11:15:05 -07:00
lib Correct swapped keylocation error messages 2018-04-09 21:11:17 -07:00
man Fix 'zfs send/recv' hang with 16M blocks 2018-04-08 19:41:15 -07:00
module Fix race in dnode_check_slots_free() 2018-04-10 11:15:05 -07:00
rpm Exclude python scripts from RPM shebang check 2018-04-06 16:32:58 -07:00
scripts Fix free memory calculation on v3.14+ 2018-02-23 08:50:06 -08:00
tests Revert "Handle zap_add() failures in mixed ... " 2018-04-09 14:24:46 -07:00
udev Add kernel module auto-loading 2018-03-13 10:45:55 -07:00
.gitignore Add configure option to enable gcov analysis 2017-09-15 10:24:13 -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 Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
COPYRIGHT Encryption patch follow-up 2017-10-11 16:54:48 -04:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
META Tag zfs-0.7.0 2017-07-26 10:13:25 -07:00
Makefile.am Allow make checkstyle and paxscript in build dir 2018-02-21 12:35:59 -08:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Add scan.coverity.com badge to README 2017-10-30 16:21:24 -07:00
TEST Refresh TEST file to include new variables 2017-11-08 11:09:30 -08:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac systemd mount generator and tracking ZEDLET 2018-04-06 14:11:09 -07:00
copy-builtin Fix copy-builtin to work with ASAN patch 2018-01-12 09:39:36 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

README.markdown

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.