From f0f16c1e2808b4bc63b7976b3af5f80cd24d080f Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Wed, 29 Jun 2016 13:11:58 -0400 Subject: [PATCH] qemu: Use qemuAliasFromDisk to generate drive alias Rather than open code build the drive alias command in multiple places, use the helper to ensure consistency. --- src/qemu/qemu_command.c | 13 ++++++++++--- src/qemu/qemu_driver.c | 3 +-- src/qemu/qemu_hotplug.c | 3 +-- src/qemu/qemu_migration.c | 9 +++------ 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 137eb735a0..95cec3f8f3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1427,7 +1427,11 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, } if (emitDeviceSyntax) { - virBufferAsprintf(&opt, ",id=%s%s", QEMU_DRIVE_HOST_PREFIX, disk->info.alias); + char *drivealias = qemuAliasFromDisk(disk); + if (!drivealias) + goto error; + virBufferAsprintf(&opt, ",id=%s", drivealias); + VIR_FREE(drivealias); } else { if (busid == -1 && unitid == -1) { if (idx != -1) @@ -1788,6 +1792,7 @@ qemuBuildDriveDevStr(const virDomainDef *def, virBuffer opt = VIR_BUFFER_INITIALIZER; const char *bus = virDomainDiskQEMUBusTypeToString(disk->bus); const char *contAlias; + char *drivealias; int controllerModel; if (qemuCheckDiskConfig(disk) < 0) @@ -2013,8 +2018,10 @@ qemuBuildDriveDevStr(const virDomainDef *def, goto error; } - virBufferAsprintf(&opt, ",drive=%s%s", QEMU_DRIVE_HOST_PREFIX, disk->info.alias); - virBufferAsprintf(&opt, ",id=%s", disk->info.alias); + if (!(drivealias = qemuAliasFromDisk(disk))) + goto error; + virBufferAsprintf(&opt, ",drive=%s,id=%s", drivealias, disk->info.alias); + VIR_FREE(drivealias); if (bootindex && virQEMUCapsGet(qemuCaps, QEMU_CAPS_BOOTINDEX)) virBufferAsprintf(&opt, ",bootindex=%u", bootindex); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKIO)) { diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c048cea58c..11db9a5e7d 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -10377,8 +10377,7 @@ qemuDomainBlockResize(virDomainPtr dom, disk->src->format == VIR_STORAGE_FILE_QED) size = VIR_ROUND_UP(size, 512); - if (virAsprintf(&device, "%s%s", QEMU_DRIVE_HOST_PREFIX, - disk->info.alias) < 0) + if (!(device = qemuAliasFromDisk(disk))) goto endjob; qemuDomainObjEnterMonitor(driver, vm); diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 356741fd32..4d5634ae7b 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -2972,8 +2972,7 @@ qemuDomainRemoveDiskDevice(virQEMUDriverPtr driver, /* build the actual drive id string as the disk->info.alias doesn't * contain the QEMU_DRIVE_HOST_PREFIX that is passed to qemu */ - if (virAsprintf(&drivestr, "%s%s", - QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) + if (!(drivestr = qemuAliasFromDisk(disk))) return -1; /* Let's look for some markers for a secret object and create an alias diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 04c847e86d..d018addaec 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1761,8 +1761,7 @@ qemuMigrationStartNBDServer(virQEMUDriverPtr driver, continue; VIR_FREE(diskAlias); - if (virAsprintf(&diskAlias, "%s%s", - QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) + if (!(diskAlias = qemuAliasFromDisk(disk))) goto cleanup; if (qemuDomainObjEnterMonitorAsync(driver, vm, @@ -1978,8 +1977,7 @@ qemuMigrationCancelOneDriveMirror(virQEMUDriverPtr driver, return 1; } - if (virAsprintf(&diskAlias, "%s%s", - QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) + if (!(diskAlias = qemuAliasFromDisk(disk))) return -1; if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) @@ -2154,8 +2152,7 @@ qemuMigrationDriveMirror(virQEMUDriverPtr driver, if (!qemuMigrateDisk(disk, nmigrate_disks, migrate_disks)) continue; - if ((virAsprintf(&diskAlias, "%s%s", - QEMU_DRIVE_HOST_PREFIX, disk->info.alias) < 0) || + if (!(diskAlias = qemuAliasFromDisk(disk)) || (virAsprintf(&nbd_dest, "nbd:%s:%d:exportname=%s", hoststr, port, diskAlias) < 0)) goto cleanup; -- 2.39.5