qemu: block commit: Don't overwrite error when rolling back disk labels

Calls to qemuDomainDiskChainElementPrepare resets the original error,
thus we need to save it in the cleanup path of qemuDomainBlockCommit.
This commit is contained in:
Peter Krempa 2017-06-20 12:18:34 +02:00
parent 3488f449a6
commit c885b7fe1d

View File

@ -17270,10 +17270,16 @@ qemuDomainBlockCommit(virDomainPtr dom,
endjob:
if (ret < 0 && clean_access) {
virErrorPtr orig_err = virSaveLastError();
/* Revert access to read-only, if possible. */
qemuDomainDiskChainElementPrepare(driver, vm, baseSource, true);
if (top_parent && top_parent != disk->src)
qemuDomainDiskChainElementPrepare(driver, vm, top_parent, true);
if (orig_err) {
virSetError(orig_err);
virFreeError(orig_err);
}
}
virStorageSourceFree(mirror);
qemuDomainObjEndJob(driver, vm);