When cancelling drive mirror, always try to do that for all disks even
if it fails for some of them. Report the first error we saw.
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
qemuMigrationCancelDriveMirror(virQEMUDriverPtr driver,
virDomainObjPtr vm)
{
+ virErrorPtr err = NULL;
+ int ret = 0;
size_t i;
for (i = 0; i < vm->def->ndisks; i++) {
if (!diskPriv->migrating || !diskPriv->blockJobSync)
continue;
- if (qemuMigrationCancelOneDriveMirror(driver, vm, disk) < 0)
- return -1;
+ if (qemuMigrationCancelOneDriveMirror(driver, vm, disk) < 0) {
+ ret = -1;
+ if (!err)
+ err = virSaveLastError();
+ }
diskPriv->migrating = false;
}
- return 0;
+ if (err) {
+ virSetError(err);
+ virFreeError(err);
+ }
+ return ret;
}