On Mon, Dec 16, 2013 at 02:45:26PM +0800, Fam Zheng wrote: > Previously live commit of active block device is not supported, this series > implements it and updates corresponding qemu-iotests cases. > > This series is based on BlockJobType enum QAPI series. > > v7: Fix "Since 1.8" to "Since 2.0". > Rebase patch 05 to master. > > v6: Address comments from Stefan: > > [04/06] commit: support commit active layer > Fix wording. > [05/06] qemu-iotests: update test cases for commit active > Drop is_active. > > Experimental for reviewers: the side by side diff against previous series: > > http://goo.gl/vgN6mc > > v5: Address comments from Eric and Paolo: > Add mirror_start_job and front end wrapper. [Paolo] > Base on BlockJobType enum in QAPI. [Eric] > Drop "common" sync mode. [Eric] > > v4: Rewrite to reuse block/mirror.c. > When committing the active layer, the job is internally a mirror job with > type name faked to "commit". > When the job completes, the BDSes are swapped, so the base image become > active and [top, base) dropped. > > > Fam Zheng (7): > blkdebug: Use QLIST_FOREACH_SAFE to resume IO > mirror: Don't close target > mirror: Move base to MirrorBlockJob > block: Add commit_active_start() > commit: Support commit active layer > qemu-iotests: Update test cases for commit active > commit: Remove unused check > > block/blkdebug.c | 8 ++--- > block/commit.c | 8 +---- > block/mirror.c | 78 > +++++++++++++++++++++++++++++++++++++++-------- > blockdev.c | 9 ++++-- > include/block/block_int.h | 22 +++++++++++-- > qapi-schema.json | 5 +-- > tests/qemu-iotests/040 | 74 +++++++++++++++++++------------------------- > 7 files changed, 131 insertions(+), 73 deletions(-) > > -- > 1.8.5.1 > >
Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan