On 05/16/14 22:17, Eric Blake wrote: ... > > Signed-off-by: Eric Blake <eblake@xxxxxxxxxx> > --- > > This patch should probably be backported, even if later patches > in the series are not, so that users avoid getting hung. > > include/libvirt/libvirt.h.in | 12 ++++++---- > src/libvirt.c | 55 +++++++++++++++++++++++++++++--------------- > src/qemu/qemu_driver.c | 9 ++++++++ > 3 files changed, 54 insertions(+), 22 deletions(-) > > diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in > index 260c971..127de11 100644 > --- a/include/libvirt/libvirt.h.in > +++ b/include/libvirt/libvirt.h.in > @@ -2588,6 +2590,8 @@ typedef enum { > VIR_DOMAIN_BLOCK_COMMIT_DELETE = 1 << 1, /* Delete any files that are now > invalid after their contents > have been committed */ > + VIR_DOMAIN_BLOCK_COMMIT_ACTIVE = 1 << 2, /* Allow a two-phase commit when > + top is the active layer */ [1] ... > } virDomainBlockCommitFlags; > > int virDomainBlockCommit(virDomainPtr dom, const char *disk, const char *base, > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 55b4755..75c59e0 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c ... > @@ -15423,6 +15424,14 @@ qemuDomainBlockCommit(virDomainPtr dom, > &top_parent))) > goto endjob; > > + /* XXX Should we auto-pivot when COMMIT_ACTIVE is not specified? */ > + if (topSource == &disk->src && !(flags & VIR_DOMAIN_BLOCK_COPY_ACTIVE)) { This fails to compile as VIR_DOMAIN_BLOCK_COPY_ACTIVE differs from the one declared at [1]. > + virReportError(VIR_ERR_INVALID_ARG, > + _("commit of '%s' active layer requires active flag"), > + disk->dst); > + goto endjob; > + } > + > if (!topSource->backingStore) { > virReportError(VIR_ERR_INVALID_ARG, > _("top '%s' in chain for '%s' has no backing file"), > I'll do a full review on Monday. Peter
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list