FreeBSD src
Go to file
Chunwei Chen da8f51e16a Use a dedicated taskq for vdev_file
The introduction of parallel zvol prefetch causes deadlock when using
vdev_file.

spa_async->(spa_namespace_lock)->txg_wait_synced->(wait for txg_sync)
txg_sync->zio_wait->(wait for vdev_file_io_fsync on system_taskq)
zvol_prefetch_minors_impl (on system_taskq)->spa_open_common->(wait for spa_namespace_lock)

We fix this by using dedicated taskq for vdev_file.  This same change
was originally made in commit bc25c93 but reverted in commit aa9af22
when dynamic taskqs were added.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Chunwei Chen <tuxoko@gmail.com>
Closes #5506 
Closes #5495
2016-12-21 10:47:15 -08:00
.github Add CONTRIBUTING information and templates 2016-12-09 12:48:12 -07:00
cmd Fix coverity defects: CID 155008 2016-12-19 10:26:15 -08:00
config Use inode_set_flags when available 2016-12-16 13:54:51 -08:00
contrib Update .gitignore 2016-10-19 14:29:33 -07:00
etc Change /etc/mtab to /proc/self/mounts 2016-09-20 10:07:58 -07:00
include Use a dedicated taskq for vdev_file 2016-12-21 10:47:15 -08:00
lib Use cstyle -cpP in make cstyle check 2016-12-12 10:46:26 -08:00
man Revert "Disable zio_dva_throttle_enabled by default" 2016-12-08 13:57:42 -07:00
module Use a dedicated taskq for vdev_file 2016-12-21 10:47:15 -08:00
rpm Add -c to zpool iostat & status to run command 2016-11-29 14:45:38 -07:00
scripts Add paxcheck make lint target 2016-10-28 16:10:00 -07:00
tests Fix dsl_props_set_sync_impl to work with nested nvlist 2016-12-20 18:46:59 -08:00
udev Allow partition aliases in vdev_id.conf (#5266) 2016-10-14 16:11:16 -07:00
.gitignore Update .gitignore 2016-10-19 14:29:33 -07:00
.gitmodules Add zimport.sh compatibility test script 2014-02-21 12:10:31 -08:00
AUTHORS Add a missing > to AUTHORS 2014-09-02 14:18:53 -07:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Add test for chattr 2016-12-16 16:07:41 -08:00
copy-builtin Illumos Crypto Port module added to enable native encryption in zfs 2016-07-20 10:43:30 -07:00
COPYRIGHT Update ZED copyright boilerplate 2015-05-11 15:07:00 -07:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
Makefile.am Use cstyle -cpP in make cstyle check 2016-12-12 10:46:26 -08:00
META Tag 0.7.0-rc2 2016-10-26 10:36:33 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Add CONTRIBUTING information and templates 2016-12-09 12:48:12 -07:00
TEST Skip xfstests on Ubuntu 16.04 and CentOS 7 2016-12-14 09:36:14 -08:00
zfs-script-config.sh.in Introduce tests for python scripts 2016-10-06 13:11:57 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

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. And it's native!

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.