This enables active commit (collapsing a temporary qcow2 wrapper file back into the permanent backing file), when the destination is a regular file or block device. Further plans for this work before 1.2.6 is released: figure out how to add a qemu capability probe (qemu 2.0 supports active commit but did a lousy job of advertising it, and I found a corner case bug in it that won't be fixed until 2.1), and integrate with Peter's work to allow active commit into a network backing file. Earlier posts related to this series: https://www.redhat.com/archives/libvir-list/2014-May/msg00564.html https://www.redhat.com/archives/libvir-list/2014-May/msg00723.html There are definitely some merge conflicts to still work out (both Peter and I are adding a new flag to virDomainBlockCommit, so it is touching some of the same code). I can rebase again on top of Peter's pending patches, if needed. I also think the switch from nested struct to pointer for a disk definition's source will make it easier for Benoit's desire to implement quorums. Eric Blake (10): conf: store snapshot source as pointer, for easier manipulation conf: consolidate disk def allocation conf: store disk source as pointer, for easier manipulation conf: store mirroring information in virStorageSource conf: alter disk mirror xml output blockcommit: document semantics of committing active layer virsh: expose new active commit controls blockcommit: update error messages related to block jobs blockcommit: track job type in xml blockcommit: turn on active commit docs/formatdomain.html.in | 25 +- docs/schemas/domaincommon.rng | 35 +- include/libvirt/libvirt.h.in | 12 +- src/conf/domain_conf.c | 275 ++++++++----- src/conf/domain_conf.h | 7 +- src/conf/snapshot_conf.c | 56 +-- src/conf/snapshot_conf.h | 2 +- src/libvirt.c | 55 ++- src/libvirt_private.syms | 1 + src/lxc/lxc_controller.c | 8 +- src/lxc/lxc_driver.c | 8 +- src/parallels/parallels_driver.c | 2 +- src/qemu/qemu_command.c | 290 ++++++------- src/qemu/qemu_conf.c | 88 ++-- src/qemu/qemu_domain.c | 22 +- src/qemu/qemu_driver.c | 451 ++++++++++++--------- src/qemu/qemu_hotplug.c | 2 +- src/qemu/qemu_migration.c | 4 +- src/qemu/qemu_process.c | 39 +- src/security/security_selinux.c | 4 +- src/vbox/vbox_tmpl.c | 6 +- src/vmx/vmx.c | 2 +- src/xenxs/xen_sxpr.c | 8 +- src/xenxs/xen_xm.c | 4 +- .../qemuxml2argv-disk-active-commit.xml | 37 ++ .../qemuxml2argv-disk-mirror-old.xml | 47 +++ .../qemuxml2argvdata/qemuxml2argv-disk-mirror.xml | 9 +- .../qemuxml2xmlout-disk-mirror-old-inactive.xml | 41 ++ .../qemuxml2xmlout-disk-mirror-old.xml | 52 +++ tests/qemuxml2xmltest.c | 2 + tests/securityselinuxlabeltest.c | 6 +- tools/virsh-domain.c | 57 ++- tools/virsh.pod | 27 +- 33 files changed, 1072 insertions(+), 612 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-active-commit.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-mirror-old.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old-inactive.xml create mode 100644 tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml -- 1.9.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list