mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-28 11:50:37 -07:00
bdrv_drain_all() doesn't allow the caller to do anything after all
pending requests have been completed but before block jobs are
resumed.
This patch splits bdrv_drain_all() into _begin() and _end() for that
purpose. It also adds aio_{disable,enable}_external() calls to disable
external clients in the meantime.
An important restriction of this split is that no new block jobs or
BlockDriverStates can be created between the bdrv_drain_all_begin()
and bdrv_drain_all_end() calls. This is not a concern now because
we'll only be using this in bdrv_reopen_multiple(), but it must be
dealt with if we ever have other uses cases in the future.
Signed-off-by: Alberto Garcia <berto@igalia.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
||
|---|---|---|
| .. | ||
| accounting.h | ||
| aio.h | ||
| block.h | ||
| block_backup.h | ||
| block_int.h | ||
| blockjob.h | ||
| dirty-bitmap.h | ||
| nbd.h | ||
| qapi.h | ||
| raw-aio.h | ||
| scsi.h | ||
| snapshot.h | ||
| thread-pool.h | ||
| throttle-groups.h | ||
| write-threshold.h | ||