This patch adds sync modes on top of the work that Stefan Hajnoczi has done.
These patches apply on kevin/block. Hopefully all is in order as this is my first QEMU patch. Many thanks to Stephan and Fam Zheng for their help. V2: - No longer poll, instead use qemu_coroutine_yield(). - Use bdrv_co_is_allocated(). - Much better SYNC_MODE_NONE test. V3: - A few style fixes. - Better commit message explaining how TOP and NONE operate. - Verified using checkpatch.pl. V4: - Add patch to use the source as a backing hd during backup. - Add patch to default sync mode none to qcow2. V5: - Fix qcow2 patch. Forgot to git add final version. V6: - Default to requiring 'format' when mode is absolute-paths. - Removed one bad hunk that was misapplying. - Fixed docs, examples and tests to match changes. - Added tests for format bad/missing. - Added bdrv_set_in_use() to target. - Default to qcow2 patch not required. V7: - Stripped it down to just implementing TOP and NONE. - Split tests apart so that most can still run without needing backing files. - Fixed SYNC_MODE_TOP logic. Yes we copy more than needed but that is always the case really. It's just a question of how big a block you want to copy. V8: - Fix qcow2 test for SYNC_MODE_NONE by shutting down VM before testing data. Ian Main (2): Implement sync modes for drive-backup. Add tests for sync modes 'TOP' and 'NONE' block/backup.c | 105 ++++++++++++++++++++++++++++++------------ blockdev.c | 25 ++++++---- include/block/block_int.h | 4 +- qmp-commands.hx | 1 + tests/qemu-iotests/055 | 26 ++++++++++- tests/qemu-iotests/055.out | 4 +- tests/qemu-iotests/056 | 74 +++++++++++++++++++++++++++++ tests/qemu-iotests/056.out | 5 ++ tests/qemu-iotests/group | 1 + tests/qemu-iotests/iotests.py | 5 ++ 10 files changed, 207 insertions(+), 43 deletions(-) create mode 100755 tests/qemu-iotests/056 create mode 100644 tests/qemu-iotests/056.out -- 1.8.1.4