56 lines
2.1 KiB
Diff
56 lines
2.1 KiB
Diff
|
|
From 505d6028f8d9351165e1cf42701ba83c68be4bbe Mon Sep 17 00:00:00 2001
|
||
|
|
From: Peter Krempa <pkrempa@redhat.com>
|
||
|
|
Date: Fri, 16 Aug 2019 17:01:10 +0200
|
||
|
|
Subject: [PATCH] qemu: alias: Generate 'qomName' of disk with useraliases
|
||
|
|
MIME-Version: 1.0
|
||
|
|
Content-Type: text/plain; charset=UTF-8
|
||
|
|
Content-Transfer-Encoding: 8bit
|
||
|
|
|
||
|
|
Commit fb64e176f4f forgot to delete the check that short-circuits the
|
||
|
|
disk alias creation if the alias is already present. The side effect
|
||
|
|
of this is that the creation qomName which is necessary to be able to
|
||
|
|
refer to disk frontends when -blockdev is used was skipped when user
|
||
|
|
aliases are used.
|
||
|
|
|
||
|
|
Fix it by deleting the check. Also prevent any potential memory leaks
|
||
|
|
from calling this function repeatedly by creating the qomName only when
|
||
|
|
it's not present.
|
||
|
|
|
||
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=1741838
|
||
|
|
|
||
|
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
||
|
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
||
|
|
(cherry-picked from commit b8222be5831261578e60ce2e867a968a6f80f67d)
|
||
|
|
Signed-off-by: Xu Yandong <xuyandong2@huawei.com>
|
||
|
|
---
|
||
|
|
src/qemu/qemu_alias.c | 6 ++----
|
||
|
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||
|
|
|
||
|
|
diff --git a/src/qemu/qemu_alias.c b/src/qemu/qemu_alias.c
|
||
|
|
index 585cc97..216a18d 100644
|
||
|
|
--- a/src/qemu/qemu_alias.c
|
||
|
|
+++ b/src/qemu/qemu_alias.c
|
||
|
|
@@ -182,9 +182,6 @@ qemuAssignDeviceDiskAlias(virDomainDefPtr def,
|
||
|
|
const char *prefix = virDomainDiskBusTypeToString(disk->bus);
|
||
|
|
int controllerModel = -1;
|
||
|
|
|
||
|
|
- if (disk->info.alias)
|
||
|
|
- return 0;
|
||
|
|
-
|
||
|
|
if (!disk->info.alias) {
|
||
|
|
if (disk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) {
|
||
|
|
if (disk->bus == VIR_DOMAIN_DISK_BUS_SCSI) {
|
||
|
|
@@ -220,7 +217,8 @@ qemuAssignDeviceDiskAlias(virDomainDefPtr def,
|
||
|
|
* on the alias in qemu. While certain disk types use just the alias, some
|
||
|
|
* need the full path into /machine/peripheral as a historical artifact.
|
||
|
|
*/
|
||
|
|
- if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) {
|
||
|
|
+ if (!diskPriv->qomName &&
|
||
|
|
+ virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) {
|
||
|
|
switch ((virDomainDiskBus) disk->bus) {
|
||
|
|
case VIR_DOMAIN_DISK_BUS_FDC:
|
||
|
|
case VIR_DOMAIN_DISK_BUS_IDE:
|
||
|
|
--
|
||
|
|
2.21.0
|
||
|
|
|