]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBuildSCSIHostdevDevStr: Pass in backend alias
authorPeter Krempa <pkrempa@redhat.com>
Fri, 19 Jun 2020 14:56:36 +0000 (16:56 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 17 Jul 2020 05:41:20 +0000 (07:41 +0200)
Don't (re)generate the backend alias (alias of the -drive backend for
now) internally but rather pass it in. Later on it will be replaced by
the nodename when blockdev is used depending on the capabilities.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_command.c
src/qemu/qemu_command.h
src/qemu/qemu_hotplug.c

index 3d9479f863c59e31a0b7b5e432b028f9ee70bcdf..200decd6e0828a3b7f2ad80f3c0251337e54b98c 100644 (file)
@@ -4641,11 +4641,11 @@ qemuBuildSCSIHostdevDrvStr(virDomainHostdevDefPtr dev,
 
 char *
 qemuBuildSCSIHostdevDevStr(const virDomainDef *def,
-                           virDomainHostdevDefPtr dev)
+                           virDomainHostdevDefPtr dev,
+                           const char *backendAlias)
 {
     g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
     int model = -1;
-    g_autofree char *driveAlias = NULL;
     const char *contAlias;
 
     model = qemuDomainFindSCSIControllerModel(def, dev->info);
@@ -4687,9 +4687,7 @@ qemuBuildSCSIHostdevDevStr(const virDomainDef *def,
                           dev->info->addr.drive.unit);
     }
 
-    if (!(driveAlias = qemuAliasFromHostdev(dev)))
-        return NULL;
-    virBufferAsprintf(&buf, ",drive=%s,id=%s", driveAlias, dev->info->alias);
+    virBufferAsprintf(&buf, ",drive=%s,id=%s", backendAlias, dev->info->alias);
 
     if (dev->info->bootIndex)
         virBufferAsprintf(&buf, ",bootindex=%u", dev->info->bootIndex);
@@ -5073,6 +5071,7 @@ qemuBuildHostdevSCSICommandLine(virCommandPtr cmd,
     virDomainHostdevSubsysSCSIPtr scsisrc = &hostdev->source.subsys.u.scsi;
     g_autofree char *devstr = NULL;
     g_autofree char *drvstr = NULL;
+    g_autofree char *backendAlias = NULL;
 
     if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) {
         virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc =
@@ -5091,8 +5090,11 @@ qemuBuildHostdevSCSICommandLine(virCommandPtr cmd,
         return -1;
     virCommandAddArg(cmd, drvstr);
 
+    if (!(backendAlias = qemuAliasFromHostdev(hostdev)))
+        return -1;
+
     virCommandAddArg(cmd, "-device");
-    if (!(devstr = qemuBuildSCSIHostdevDevStr(def, hostdev)))
+    if (!(devstr = qemuBuildSCSIHostdevDevStr(def, hostdev, backendAlias)))
         return -1;
     virCommandAddArg(cmd, devstr);
 
index 55bc67072a11d51a2edeabbbec38d4ecc80efec6..d0de27d9b092458547a01b603e96333738b103f1 100644 (file)
@@ -179,7 +179,9 @@ char *qemuBuildSCSIHostdevDrvStr(virDomainHostdevDefPtr dev,
                                  virQEMUCapsPtr qemuCaps);
 
 char *qemuBuildSCSIHostdevDevStr(const virDomainDef *def,
-                                 virDomainHostdevDefPtr dev);
+                                 virDomainHostdevDefPtr dev,
+                                 const char *backendAlias);
+
 char *
 qemuBuildSCSIVHostHostdevDevStr(const virDomainDef *def,
                                 virDomainHostdevDefPtr dev,
index f6be72a8f01eaecad9c5780019cb026c3f660c70..7137ddb27ca71cb81191bd9e2b82396a10ebf09a 100644 (file)
@@ -2630,7 +2630,7 @@ qemuDomainAttachHostSCSIDevice(virQEMUDriverPtr driver,
     if (!(drivealias = qemuAliasFromHostdev(hostdev)))
         goto cleanup;
 
-    if (!(devstr = qemuBuildSCSIHostdevDevStr(vm->def, hostdev)))
+    if (!(devstr = qemuBuildSCSIHostdevDevStr(vm->def, hostdev, drivealias)))
         goto cleanup;
 
     if (VIR_REALLOC_N(vm->def->hostdevs, vm->def->nhostdevs + 1) < 0)