Skip to content
ZFS on Linux - the official OpenZFS implementation for Linux.
C Shell M4 Python Makefile Assembly Other
Latest commit b7faa7a May 21, 2016 @GeLiXin GeLiXin committed with behlendorf Fix self-healing IO prior to dsl_pool_init() completion
Async writes triggered by a self-healing IO may be issued before the
pool finishes the process of initialization.  This results in a NULL
dereference of `spa->spa_dsl_pool` in vdev_queue_max_async_writes().

George Wilson recommended addressing this issue by initializing the
passed `dsl_pool_t **` prior to dmu_objset_open_impl().  Since the
caller is passing the `spa->spa_dsl_pool` this has the effect of
ensuring it's initialized.

However, since this depends on the caller knowing they must pass
the `spa->spa_dsl_pool` an additional NULL check was added to
vdev_queue_max_async_writes().  This guards against any future
restructuring of the code which might result in dsl_pool_init()
being called differently.

Signed-off-by: GeLiXin <47034221@qq.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #4652
Failed to load latest commit information.
cmd OpenZFS 6531 - Provide mechanism to artificially limit disk performance May 26, 2016
config Linux 4.7 compat: use iterate_shared for concurrent readdir May 20, 2016
contrib Fix the test to use the variable May 13, 2016
etc Systemd configuration fixes May 27, 2016
include OpenZFS 6531 - Provide mechanism to artificially limit disk performance May 26, 2016
lib Make zpool list -vp print individual vdev sizes parsable. May 18, 2016
man OpenZFS 6531 - Provide mechanism to artificially limit disk performance May 26, 2016
module Fix self-healing IO prior to dsl_pool_init() completion May 27, 2016
rpm Add missing RPM BuildRequires May 23, 2016
scripts Add zfs-helpers.sh script May 10, 2016
tests OpenZFS 6531 - Provide mechanism to artificially limit disk performance May 26, 2016
udev Support parallel build trees (VPATH builds) Jul 17, 2015
.gitignore Ignore *.{deb,rpm,tar.gz} files in the top directory. Apr 24, 2013
.gitmodules Add zimport.sh compatibility test script Feb 21, 2014
AUTHORS Add a missing > to AUTHORS Sep 2, 2014
COPYRIGHT Update ZED copyright boilerplate May 11, 2015
DISCLAIMER Fix minor typos and update marketing copy. Mar 21, 2013
META Tag zfs-0.6.5 Sep 11, 2015
Makefile.am Add the ZFS Test Suite Mar 16, 2016
OPENSOLARIS.LICENSE Add CDDL license file Dec 1, 2008
README.markdown Fix minor typos and update marketing copy. Mar 21, 2013
TEST Add the ZFS Test Suite Mar 16, 2016
autogen.sh build: do not call boilerplate ourself Apr 2, 2013
configure.ac OpenZFS 6736 - ZFS per-vdev ZAPs May 2, 2016
copy-builtin Fix --enable-linux-builtin Dec 2, 2015
zfs-script-config.sh.in Add zfs-helpers.sh script May 10, 2016
zfs.release.in Move zfs.release generation to configure step Jul 12, 2012

README.markdown

Native ZFS for Linux!

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

ZFS on Linux, which is also known as ZoL, is currently feature complete. It includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers.

Full documentation for installing ZoL on your favorite Linux distribution can be found at: http://zfsonlinux.org

Something went wrong with that request. Please try again.