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