mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: blockcopy: Save monitor error prior to calling into lock manager
The error would be overwritten otherwise producing a meaningless error message. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1302171
This commit is contained in:
parent
0dd1f7d2d7
commit
8551d39f4f
@ -16657,6 +16657,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
|
||||
virQEMUDriverConfigPtr cfg = NULL;
|
||||
const char *format = NULL;
|
||||
int desttype = virStorageSourceGetActualType(mirror);
|
||||
virErrorPtr monitor_error = NULL;
|
||||
|
||||
/* Preliminaries: find the disk we are editing, sanity checks */
|
||||
virCheckFlags(VIR_DOMAIN_BLOCK_COPY_SHALLOW |
|
||||
@ -16807,6 +16808,7 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
|
||||
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
||||
ret = -1;
|
||||
if (ret < 0) {
|
||||
monitor_error = virSaveLastError();
|
||||
qemuDomainDiskChainElementRevoke(driver, vm, mirror);
|
||||
goto endjob;
|
||||
}
|
||||
@ -16827,6 +16829,10 @@ qemuDomainBlockCopyCommon(virDomainObjPtr vm,
|
||||
VIR_WARN("unable to unlink just-created %s", mirror->path);
|
||||
virStorageSourceFree(mirror);
|
||||
qemuDomainObjEndJob(driver, vm);
|
||||
if (monitor_error) {
|
||||
virSetError(monitor_error);
|
||||
virFreeError(monitor_error);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(device);
|
||||
|
Loading…
x
Reference in New Issue
Block a user