提交 b25956fb 编写于 作者: P Peter Krempa

qemu: migration: Refactor cleanup in qemuMigrationSrcNBDStorageCopyDriveMirror

Use VIR_AUTOFREE and remove the cleanup label.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
上级 e9f78427
...@@ -868,36 +868,31 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virQEMUDriverPtr driver, ...@@ -868,36 +868,31 @@ qemuMigrationSrcNBDStorageCopyDriveMirror(virQEMUDriverPtr driver,
unsigned long long mirror_speed, unsigned long long mirror_speed,
bool mirror_shallow) bool mirror_shallow)
{ {
char *nbd_dest = NULL; VIR_AUTOFREE(char *) nbd_dest = NULL;
int mon_ret; int mon_ret;
int ret = -1;
if (strchr(host, ':')) { if (strchr(host, ':')) {
if (virAsprintf(&nbd_dest, "nbd:[%s]:%d:exportname=%s", if (virAsprintf(&nbd_dest, "nbd:[%s]:%d:exportname=%s",
host, port, diskAlias) < 0) host, port, diskAlias) < 0)
goto cleanup; return -1;
} else { } else {
if (virAsprintf(&nbd_dest, "nbd:%s:%d:exportname=%s", if (virAsprintf(&nbd_dest, "nbd:%s:%d:exportname=%s",
host, port, diskAlias) < 0) host, port, diskAlias) < 0)
goto cleanup; return -1;
} }
if (qemuDomainObjEnterMonitorAsync(driver, vm, if (qemuDomainObjEnterMonitorAsync(driver, vm,
QEMU_ASYNC_JOB_MIGRATION_OUT) < 0) QEMU_ASYNC_JOB_MIGRATION_OUT) < 0)
goto cleanup; return -1;
mon_ret = qemuMonitorDriveMirror(qemuDomainGetMonitor(vm), mon_ret = qemuMonitorDriveMirror(qemuDomainGetMonitor(vm),
diskAlias, nbd_dest, "raw", diskAlias, nbd_dest, "raw",
mirror_speed, 0, 0, mirror_shallow, true); mirror_speed, 0, 0, mirror_shallow, true);
if (qemuDomainObjExitMonitor(driver, vm) < 0 || mon_ret < 0) if (qemuDomainObjExitMonitor(driver, vm) < 0 || mon_ret < 0)
goto cleanup; return -1;
ret = 0;
cleanup: return 0;
VIR_FREE(nbd_dest);
return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册