Files
mirror_zfs/include/sys
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
..
2016-01-11 11:58:26 -08:00
2015-09-11 11:14:38 -07:00
2015-07-10 11:58:37 -07:00
2014-08-01 14:28:05 -07:00
2016-01-08 15:08:19 -08:00
2016-01-08 15:08:19 -08:00
2014-01-07 10:33:11 -08:00
2014-08-01 14:28:05 -07:00
2014-03-04 12:22:24 -08:00
2014-07-29 10:55:29 -07:00
2014-07-29 10:55:29 -07:00
2013-11-04 11:18:14 -08:00
2013-11-04 11:17:48 -08:00
2016-01-08 15:08:19 -08:00
2016-01-15 15:38:35 -08:00
2015-09-19 14:04:14 -07:00
2014-08-13 10:35:00 -07:00
2014-07-30 09:20:35 -07:00
2015-12-30 13:20:12 -08:00
2016-01-15 15:38:35 -08:00
2016-01-15 15:38:35 -08:00
2016-01-15 15:38:35 -08:00
2015-01-06 16:53:24 -08:00
2011-02-10 09:21:43 -08:00
2013-11-04 10:55:25 -08:00
2013-12-18 16:46:35 -08:00
2015-06-25 08:58:16 -07:00
2011-03-02 11:43:50 -08:00
2015-12-04 09:39:20 -08:00
2014-07-28 14:29:58 -07:00
2013-11-04 10:55:25 -08:00
2016-01-22 09:39:46 -08:00
2015-09-04 16:08:14 -07:00
2013-12-18 16:46:35 -08:00
2011-02-10 09:27:21 -08:00
2013-11-04 10:55:25 -08:00
2016-01-15 15:33:45 -08:00
2014-08-11 16:11:43 -07:00
2016-01-15 15:33:45 -08:00
2015-06-09 13:48:02 -07:00
2016-01-08 15:08:19 -08:00
2013-11-04 10:55:25 -08:00
2013-11-05 12:14:56 -08:00
2016-01-08 15:08:19 -08:00
2016-01-08 15:08:19 -08:00
2015-09-03 14:14:55 -07:00