On 24.01.2012 19:49, Jiri Denemark wrote: > On Tue, Jan 24, 2012 at 18:37:44 +0100, Michal Privoznik wrote: >> With this flag, virDomainSnapshotCreate will use fs-freeze and >> fs-thaw guest agent commands to quiesce guest's disks. >> --- >> include/libvirt/libvirt.h.in | 4 ++ >> src/libvirt.c | 6 ++ >> src/qemu/qemu_driver.c | 118 ++++++++++++++++++++++++++++++++++++----- >> 3 files changed, 113 insertions(+), 15 deletions(-) >> >> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in >> index 5e6e488..182065d 100644 >> --- a/include/libvirt/libvirt.h.in >> +++ b/include/libvirt/libvirt.h.in >> @@ -3125,6 +3125,10 @@ typedef enum { >> system checkpoint */ >> VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT = (1 << 5), /* reuse any existing >> external files */ >> + VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE = (1 << 6), /* use guest agent to >> + quiesce all mounted >> + file systems within >> + the domain */ > > Do we also want to add another flag that would make quiescing optional? That > is, use it if it's available but don't fail if it's not. If this is ever needed we can add it then. >> @@ -9493,6 +9543,13 @@ qemuDomainSnapshotCreateActive(virConnectPtr conn, >> } >> >> if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { >> + if ((flags & VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) && >> + (qemuDomainSnapshotFSFreeze(driver, vm) < 0)) { >> + qemuReportError(VIR_ERR_INTERNAL_ERROR, "%s", >> + _("Unable to freeze domain's file systems")); > > This just masks useful error reported by qemuDomainSnapshotFSFreeze(). In fact, I just realized, this is dead code. Since we are checking for DISK_ONLY flag which implies calling qemuDomainSnapshotCreateDiskActive() we will never get this condition to evaluate as true. I'll drop it in v2. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list