qemu/include/block
Kevin Wolf 0152bf400f block: Don't notify parents in drain call chain
This is in preparation for subtree drains, i.e. drained sections that
affect not only a single node, but recursively all child nodes, too.

Calling the parent callbacks for drain is pointless when we just came
from that parent node recursively and leads to multiple increases of
bs->quiesce_counter in a single drain call. Don't do it.

In order for this to work correctly, the parent callback must be called
for every bdrv_drain_begin/end() call, not only for the outermost one:

If we have a node N with two parents A and B, recursive draining of A
should cause the quiesce_counter of B to increase because its child N is
drained independently of B. If now B is recursively drained, too, A must
increase its quiesce_counter because N is drained independently of A
only now, even if N is going from quiesce_counter 1 to 2.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2017-12-22 15:05:32 +01:00
..
accounting.h block: make accounting thread-safe 2017-06-16 07:55:00 +08:00
aio.h aio: add missing aio_notify() to aio_enable_external() 2017-05-12 10:36:46 -04:00
block.h block: Don't notify parents in drain call chain 2017-12-22 15:05:32 +01:00
block_backup.h backup: Switch block_backup.h to byte-based 2017-07-10 13:18:06 +02:00
block_int.h block: Remove unused bdrv_requests_pending 2017-12-22 15:05:31 +01:00
blockjob.h blockjob: reimplement block_job_sleep_ns to allow cancellation 2017-11-29 15:26:21 +01:00
blockjob_int.h blockjob: reimplement block_job_sleep_ns to allow cancellation 2017-11-29 15:26:21 +01:00
dirty-bitmap.h hbitmap: add next_zero function 2017-12-18 10:54:13 -05:00
nbd.h nbd: Fix struct name for structured reads 2017-11-09 10:17:12 -06:00
qapi.h block/qapi: Use blk_enable_write_cache() 2016-03-30 12:16:02 +02:00
raw-aio.h linux-aio: share one LinuxAioState within an AioContext 2016-07-18 15:09:31 +01:00
snapshot.h block: Add errp to bdrv_all_goto_snapshot() 2017-11-21 14:48:22 +01:00
thread-pool.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
throttle-groups.h block: add throttle block filter driver 2017-09-06 10:12:02 +02:00
write-threshold.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00