This patchset adds the ability to take a snapshot of a group of devices, rather than each device individually. Upon failure of any snapshot, all snapshots taken by the command will be abandoned, and the appropriate failure code returned.
All the changes from v2 to v3 are in patch 1/2. This differs from v2 in that: * Comments were added and clarified, as recommended by Stefan and Kevin * In block.c: - the assignment of the backing_hd was moved closer to the swap, for clarity - additional fields preserved (geometery, io stats, r/w error) - more fields cleared in lower layer bs after the swap * In blockdev.c: - Removed the is_open field - bdrv_drain_all() moved to the top of the function - Error checking on bdrv_flush() (and no flush if it is read-only) - Fixed mem leak scenarios * In block_int.h: - Note at the top of the BlockDriverState struct Jeff Cody (2): qapi: Introduce blockdev-group-snapshot-sync command QMP: Add qmp command for blockdev-group-snapshot-sync block.c | 80 ++++++++++++++++++++++++++++++++ block.h | 1 + block_int.h | 6 +++ blockdev.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ qapi-schema.json | 38 +++++++++++++++ qmp-commands.hx | 39 ++++++++++++++++ 6 files changed, 297 insertions(+), 0 deletions(-) -- 1.7.9.rc2.1.g69204