]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu_conf.c: introduce qemuAddRemoveSharedDeviceInternal
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Tue, 3 Sep 2019 23:06:07 +0000 (20:06 -0300)
committerPavel Hrdina <phrdina@redhat.com>
Mon, 9 Sep 2019 12:52:32 +0000 (14:52 +0200)
After the previous commits, qemuAddSharedDevice() and
qemuRemoveSharedDevice() are now the same code with a different
flag to call the internal functions.

This patch aggregates the common code into a new function called
qemuAddRemoveSharedDeviceInternal() to further reduce
code repetition. Both qemuAddSharedDevice() and
qemuRemoveSharedDevice() are kept since they are public
functions used elsewhere.

No functional change was made.

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_conf.c

index 62db957e9ab26a94a1ddec13725209fdbfe72b7e..86b2eef0608618fa5ae8917e79cf5db94484a6db 100644 (file)
@@ -1802,6 +1802,26 @@ qemuAddRemoveSharedHostdevInternal(virQEMUDriverPtr driver,
 
 }
 
+static int
+qemuAddRemoveSharedDeviceInternal(virQEMUDriverPtr driver,
+                                  virDomainDeviceDefPtr dev,
+                                  const char *name,
+                                  bool addDevice)
+{
+    /* Currently the only conflicts we have to care about for
+     * the shared disk and shared host device is "sgio" setting,
+     * which is only valid for block disk and scsi host device.
+     */
+    if (dev->type == VIR_DOMAIN_DEVICE_DISK)
+        return qemuAddRemoveSharedDiskInternal(driver, dev->data.disk,
+                                               name, addDevice);
+    else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV)
+        return qemuAddRemoveSharedHostdevInternal(driver, dev->data.hostdev,
+                                                  name, addDevice);
+    else
+        return 0;
+}
+
 
 /* qemuAddSharedDevice:
  * @driver: Pointer to qemu driver struct
@@ -1817,18 +1837,7 @@ qemuAddSharedDevice(virQEMUDriverPtr driver,
                     virDomainDeviceDefPtr dev,
                     const char *name)
 {
-    /* Currently the only conflicts we have to care about for
-     * the shared disk and shared host device is "sgio" setting,
-     * which is only valid for block disk and scsi host device.
-     */
-    if (dev->type == VIR_DOMAIN_DEVICE_DISK)
-        return qemuAddRemoveSharedDiskInternal(driver, dev->data.disk,
-                                               name, true);
-    else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV)
-        return qemuAddRemoveSharedHostdevInternal(driver, dev->data.hostdev,
-                                                  name, true);
-    else
-        return 0;
+    return qemuAddRemoveSharedDeviceInternal(driver, dev, name, true);
 }
 
 
@@ -1855,14 +1864,7 @@ qemuRemoveSharedDevice(virQEMUDriverPtr driver,
                        virDomainDeviceDefPtr dev,
                        const char *name)
 {
-    if (dev->type == VIR_DOMAIN_DEVICE_DISK)
-        return qemuAddRemoveSharedDiskInternal(driver, dev->data.disk,
-                                               name, false);
-    else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV)
-        return qemuAddRemoveSharedHostdevInternal(driver, dev->data.hostdev,
-                                                  name, false);
-    else
-        return 0;
+    return qemuAddRemoveSharedDeviceInternal(driver, dev, name, false);
 }