From: Michal Privoznik Date: Fri, 6 Apr 2012 10:33:48 +0000 (+0200) Subject: qemu_ga: Don't overwrite errors on FSThaw X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=650da0e99c56f4142273f4e369ad02bd0c008765;p=people%2Fliuw%2Flibxenctrl-split%2Flibvirt.git qemu_ga: Don't overwrite errors on FSThaw We can tell qemuDomainSnapshotFSThaw if we want it to report errors or not. However, if we don't want to and an error has been already set by previous qemuReportError() we must keep copy of that error not just a pointer to it. Otherwise, it get overwritten if FSThaw reports an error. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index dd79973d5..0880f5111 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -9636,16 +9636,13 @@ qemuDomainSnapshotFSThaw(struct qemud_driver *driver, qemuDomainObjEnterAgent(driver, vm); if (!report) - err = virGetLastError(); + err = virSaveLastError(); thawed = qemuAgentFSThaw(priv->agent); - if (!report) { - if (err) - virResetError(err); - else - virResetLastError(); - } + if (!report) + virSetError(err); qemuDomainObjExitAgent(driver, vm); + virFreeError(err); return thawed; }