From: Peter Krempa Date: Thu, 10 Mar 2022 12:09:58 +0000 (+0100) Subject: qemuMigrationSrcNBDStorageCopyOne: Refactor cleanup X-Git-Tag: v8.2.0-rc1~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da48fff4b97ac4f76f877cfbc334cc6b09d1ea76;p=thirdparty%2Flibvirt.git qemuMigrationSrcNBDStorageCopyOne: Refactor cleanup Autofree the temporary string and shuffle around the success path to avoid the 'cleanup' label. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 3650de3de8..69bcdafdf8 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1035,7 +1035,7 @@ qemuMigrationSrcNBDStorageCopyOne(virQEMUDriver *driver, 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; @@ -1044,10 +1044,10 @@ qemuMigrationSrcNBDStorageCopyOne(virQEMUDriver *driver, 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; @@ -1079,17 +1079,13 @@ qemuMigrationSrcNBDStorageCopyOne(virQEMUDriver *driver, 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; }