render / rpms / libvirt

Forked from rpms/libvirt 4 months ago
Clone
99cbc7
From 2c69082662aaa4892434bcd16c764029f707ae0d Mon Sep 17 00:00:00 2001
99cbc7
Message-Id: <2c69082662aaa4892434bcd16c764029f707ae0d@dist-git>
99cbc7
From: Laine Stump <laine@laine.org>
99cbc7
Date: Thu, 11 Apr 2019 15:14:41 -0400
99cbc7
Subject: [PATCH] qemu_hotplug: remove extra function in middle of
99cbc7
 DetachController call chain
99cbc7
99cbc7
qemuDomainDetachDeviceControllerLive() just checks if the controller
99cbc7
type is SCSI, and then either returns failure, or calls
99cbc7
qemuDomainDetachControllerDevice().
99cbc7
99cbc7
Instead, lets just check for type != SCSI at the top of the latter
99cbc7
function, and call it directly.
99cbc7
99cbc7
Signed-off-by: Laine Stump <laine@laine.org>
99cbc7
ACKed-by: Peter Krempa <pkrempa@redhat.com>
99cbc7
(cherry picked from commit e4d96324b48b8aab864212382390a5c4a40970d2)
99cbc7
99cbc7
Partially-Resolves: https://bugzilla.redhat.com/1658198
99cbc7
Signed-off-by: Laine Stump <laine@redhat.com>
99cbc7
Signed-off-by: Laine Stump <laine@laine.org>
99cbc7
Message-Id: <20190411191453.24055-30-laine@redhat.com>
99cbc7
Acked-by: Michal Privoznik <mprivozn@redhat.com>
99cbc7
---
99cbc7
 src/qemu/qemu_hotplug.c | 30 ++++++++----------------------
99cbc7
 1 file changed, 8 insertions(+), 22 deletions(-)
99cbc7
99cbc7
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
99cbc7
index 930f8d3358..1b15116a9f 100644
99cbc7
--- a/src/qemu/qemu_hotplug.c
99cbc7
+++ b/src/qemu/qemu_hotplug.c
99cbc7
@@ -4996,6 +4996,13 @@ int qemuDomainDetachControllerDevice(virQEMUDriverPtr driver,
99cbc7
     int idx, ret = -1;
99cbc7
     virDomainControllerDefPtr detach = NULL;
99cbc7
 
99cbc7
+    if (dev->data.controller->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI) {
99cbc7
+        virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
99cbc7
+                       _("'%s' controller cannot be hot unplugged."),
99cbc7
+                       virDomainControllerTypeToString(dev->data.controller->type));
99cbc7
+        return -1;
99cbc7
+    }
99cbc7
+
99cbc7
     if ((idx = virDomainControllerFind(vm->def,
99cbc7
                                        dev->data.controller->type,
99cbc7
                                        dev->data.controller->idx)) < 0) {
99cbc7
@@ -5638,27 +5645,6 @@ qemuDomainDetachLease(virQEMUDriverPtr driver,
99cbc7
 }
99cbc7
 
99cbc7
 
99cbc7
-static int
99cbc7
-qemuDomainDetachDeviceControllerLive(virQEMUDriverPtr driver,
99cbc7
-                                     virDomainObjPtr vm,
99cbc7
-                                     virDomainDeviceDefPtr dev,
99cbc7
-                                     bool async)
99cbc7
-{
99cbc7
-    virDomainControllerDefPtr cont = dev->data.controller;
99cbc7
-    int ret = -1;
99cbc7
-
99cbc7
-    switch (cont->type) {
99cbc7
-    case VIR_DOMAIN_CONTROLLER_TYPE_SCSI:
99cbc7
-        ret = qemuDomainDetachControllerDevice(driver, vm, dev, async);
99cbc7
-        break;
99cbc7
-    default :
99cbc7
-        virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
99cbc7
-                       _("'%s' controller cannot be hot unplugged."),
99cbc7
-                       virDomainControllerTypeToString(cont->type));
99cbc7
-    }
99cbc7
-    return ret;
99cbc7
-}
99cbc7
-
99cbc7
 int
99cbc7
 qemuDomainDetachDeviceLive(virDomainObjPtr vm,
99cbc7
                            virDomainDeviceDefPtr dev,
99cbc7
@@ -5672,7 +5658,7 @@ qemuDomainDetachDeviceLive(virDomainObjPtr vm,
99cbc7
         ret = qemuDomainDetachDeviceDiskLive(driver, vm, dev, async);
99cbc7
         break;
99cbc7
     case VIR_DOMAIN_DEVICE_CONTROLLER:
99cbc7
-        ret = qemuDomainDetachDeviceControllerLive(driver, vm, dev, async);
99cbc7
+        ret = qemuDomainDetachControllerDevice(driver, vm, dev, async);
99cbc7
         break;
99cbc7
     case VIR_DOMAIN_DEVICE_LEASE:
99cbc7
         ret = qemuDomainDetachLease(driver, vm, dev->data.lease);
99cbc7
-- 
99cbc7
2.21.0
99cbc7