qemuDomainObjPrivate *priv = vm->privateData;
qemuDomainDiskPrivate *diskPriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
qemuBlockJobData *job = NULL;
- char *diskAlias = NULL;
+ g_autofree char *diskAlias = NULL;
const char *jobname = NULL;
const char *sourcename = NULL;
bool persistjob = false;
int ret = -1;
if (!(diskAlias = qemuAliasDiskDriveFromDisk(disk)))
- goto cleanup;
+ return -1;
if (!(job = qemuBlockJobDiskNew(vm, disk, QEMU_BLOCKJOB_TYPE_COPY, diskAlias)))
- goto cleanup;
+ return -1;
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) {
jobname = diskAlias;
mirror_shallow);
}
- if (rc < 0)
- goto cleanup;
-
- diskPriv->migrating = true;
- qemuBlockJobStarted(job, vm);
-
- ret = 0;
+ if (rc == 0) {
+ diskPriv->migrating = true;
+ qemuBlockJobStarted(job, vm);
+ ret = 0;
+ }
- cleanup:
qemuBlockJobStartupFinalize(vm, job);
- VIR_FREE(diskAlias);
return ret;
}