On Wed, Sep 17, 2014 at 17:18:38 +0200, Peter Krempa wrote: > Move them to the single corresponding function rather than having them > in the common chunk of code. > --- > src/qemu/qemu_driver.c | 76 +++++++++++++++++++++++++++----------------------- > 1 file changed, 41 insertions(+), 35 deletions(-) > > diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c > index 0151fd2..1d82e93 100644 > --- a/src/qemu/qemu_driver.c > +++ b/src/qemu/qemu_driver.c ... > @@ -5477,18 +5489,6 @@ qemuDomainSaveImageOpen(virQEMUDriverPtr driver, > goto error; > } > > - if (edit && STREQ(xml, xmlin) && > - (state < 0 || state == header.was_running)) { > - VIR_FREE(xml); > - if (VIR_CLOSE(fd) < 0) { > - virReportSystemError(errno, _("cannot close file: %s"), path); > - goto error; > - } > - return -2; > - } > - if (state >= 0) > - header.was_running = state; > - > /* Create a domain from this XML */ > if (!(def = virDomainDefParseString(xml, caps, driver->xmlopt, > QEMU_EXPECTED_VIRT_TYPES, ... > @@ -5763,22 +5762,30 @@ qemuDomainSaveImageDefineXML(virConnectPtr conn, const char *path, > else if (flags & VIR_DOMAIN_SAVE_PAUSED) > state = 0; > > - fd = qemuDomainSaveImageOpen(driver, path, &def, &header, NULL, > - false, NULL, dxml, state, true, false); > + fd = qemuDomainSaveImageOpen(driver, path, &def, &header, &xml, > + false, NULL, true, false); > > - if (fd < 0) { > - /* Check for special case of no change needed. */ > - if (fd == -2) > - ret = 0; > + if (fd < 0) > goto cleanup; > - } > > if (virDomainSaveImageDefineXMLEnsureACL(conn, def) < 0) > goto cleanup; > > + if (STREQ(xml, dxml) && > + (state < 0 || state == header.was_running)) { > + /* no change to the XML */ > + ret = 0; > + goto cleanup; > + } > + > + if (state > 0) > + header.was_running = state; I believe the condition should be state >= 0. > + > if (!(newdef = qemuDomainSaveImageUpdateDef(driver, def, dxml))) > goto cleanup; > > + VIR_FREE(xml); > + > xml = qemuDomainDefFormatXML(driver, newdef, > VIR_DOMAIN_XML_INACTIVE | > VIR_DOMAIN_XML_SECURE | ... ACK Jirka -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list