OpenZFS on Linux and FreeBSD
Go to file
Boris Protopopov a0bd735adb Add support for asynchronous zvol minor operations
zfsonlinux issue #2217 - zvol minor operations: check snapdev
property before traversing snapshots of a dataset

zfsonlinux issue #3681 - lock order inversion between zvol_open()
and dsl_pool_sync()...zvol_rename_minors()

Create a per-pool zvol taskq for asynchronous zvol tasks.
There are a few key design decisions to be aware of.

* Each taskq must be single threaded to ensure tasks are always
  processed in the order in which they were dispatched.

* There is a taskq per-pool in order to keep the pools independent.
  This way if one pool is suspended it will not impact another.

* The preferred location to dispatch a zvol minor task is a sync
  task.  In this context there is easy access to the spa_t and
  minimal error handling is required because the sync task must
  succeed.

Support for asynchronous zvol minor operations address issue #3681.

Signed-off-by: Boris Protopopov <boris.protopopov@actifio.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #2217
Closes #3678
Closes #3681
2016-03-10 09:49:22 -08:00
cmd Require libblkid 2016-03-09 10:39:22 -08:00
config Require libblkid 2016-03-09 10:39:22 -08:00
contrib Activate LVM volume groups before looking for zpools. 2015-12-18 13:46:23 -08:00
etc Add support for alpine linux 2016-03-08 13:19:53 -08:00
include Add support for asynchronous zvol minor operations 2016-03-10 09:49:22 -08:00
lib Add support for asynchronous zvol minor operations 2016-03-10 09:49:22 -08:00
man Require libblkid 2016-03-09 10:39:22 -08:00
module Add support for asynchronous zvol minor operations 2016-03-10 09:49:22 -08:00
rpm Remove RPM package restriction 2016-03-10 09:14:27 -08:00
scripts Add support for asynchronous zvol minor operations 2016-03-10 09:49:22 -08:00
udev Support parallel build trees (VPATH builds) 2015-07-17 13:42:51 -07:00
.gitignore Ignore *.{deb,rpm,tar.gz} files in the top directory. 2013-04-24 16:18:59 -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
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
META Tag zfs-0.6.5 2015-09-11 11:16:38 -07:00
Makefile.am Support parallel build trees (VPATH builds) 2015-07-17 13:42:51 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
TEST Illumos 6319 - assertion failed in zio_ddt_write: bp->blk_birth == txg 2016-01-12 09:10:52 -08:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Move dracut directory to contrib 2015-07-09 13:59:37 -07:00
copy-builtin Fix --enable-linux-builtin 2015-12-02 07:54:32 -08:00
zfs-script-config.sh.in Initial implementation of zed (ZFS Event Daemon) 2014-04-02 13:10:03 -07:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

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