qemu-e2k/include/block
Fam Zheng fbe40ff780 block: Introduce op_blockers to BlockDriverState
BlockDriverState.op_blockers is an array of lists with BLOCK_OP_TYPE_MAX
elements. Each list is a list of blockers of an operation type
(BlockOpType), that marks this BDS as currently blocked for a certain
type of operation with reason errors stored in the list. The rule of
usage is:

 * BDS user who wants to take an operation should check if there's any
   blocker of the type with bdrv_op_is_blocked().

 * BDS user who wants to block certain types of operation, should call
   bdrv_op_block (or bdrv_op_block_all to block all types of operations,
   which is similar to the existing bdrv_set_in_use()).

 * A blocker is only referenced by op_blockers, so the lifecycle is
   managed by caller, and shouldn't be lost until unblock, so typically
   a caller does these:

   - Allocate a blocker with error_setg or similar, call bdrv_op_block()
     to block some operations.
   - Hold the blocker, do his job.
   - Unblock operations that it blocked, with the same reason pointer
     passed to bdrv_op_unblock().
   - Release the blocker with error_free().

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2014-05-28 14:28:46 +02:00
..
aio.h aio: add aio_context_acquire() and aio_context_release() 2014-03-13 14:42:24 +01:00
block_int.h block: Introduce op_blockers to BlockDriverState 2014-05-28 14:28:46 +02:00
block.h block: Introduce op_blockers to BlockDriverState 2014-05-28 14:28:46 +02:00
blockjob.h qapi: make use of new BlockJobType 2013-10-11 10:52:54 +02:00
coroutine_int.h
coroutine.h coroutine: remove unused CoQueue AioContext 2013-12-02 17:11:49 +01:00
nbd.h nbd: move socket wrappers to qemu-nbd 2014-02-21 21:02:23 +01:00
qapi.h qmp: Add QMP query-named-block-nodes to list the named BlockDriverState nodes. 2014-01-24 16:07:08 +01:00
scsi.h
snapshot.h qemu-nbd: support internal snapshot export 2013-12-04 15:19:00 +01:00
thread-pool.h