]> xenbits.xensource.com Git - libvirt.git/commitdiff
extract general code from qemuDomainReAttachHostScsiDevices
authorChunyan Liu <cyliu@suse.com>
Thu, 6 Mar 2014 06:45:23 +0000 (14:45 +0800)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 12 Mar 2014 16:03:06 +0000 (16:03 +0000)
Extract general code from qemuDomainReAttachHostScsiDevices to
virHostdevDomainReAttachHostScsiDevices.

src/qemu/qemu_hostdev.c

index 41cda4838abbde4abe8e20c37c01322f7e82203c..5e46a3df18113ad412ed97354d246919631ca296 100644 (file)
@@ -328,27 +328,19 @@ qemuDomainReAttachHostUsbDevices(virQEMUDriverPtr driver,
                                   name, hostdevs, nhostdevs);
 }
 
-
-void
-qemuDomainReAttachHostScsiDevices(virQEMUDriverPtr driver,
-                                  const char *name,
-                                  virDomainHostdevDefPtr *hostdevs,
-                                  int nhostdevs)
+static void
+virHostdevReAttachScsiHostdevs(virHostdevManagerPtr hostdev_mgr,
+                               const char *name,
+                               virDomainHostdevDefPtr *hostdevs,
+                               int nhostdevs)
 {
     size_t i;
-    virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
 
     virObjectLock(hostdev_mgr->activeScsiHostdevs);
     for (i = 0; i < nhostdevs; i++) {
         virDomainHostdevDefPtr hostdev = hostdevs[i];
         virSCSIDevicePtr scsi;
         virSCSIDevicePtr tmp;
-        virDomainDeviceDef dev;
-
-        dev.type = VIR_DOMAIN_DEVICE_HOSTDEV;
-        dev.data.hostdev = hostdev;
-
-        ignore_value(qemuRemoveSharedDevice(driver, &dev, name));
 
         if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS ||
             hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
@@ -397,6 +389,28 @@ qemuDomainReAttachHostScsiDevices(virQEMUDriverPtr driver,
     virObjectUnlock(hostdev_mgr->activeScsiHostdevs);
 }
 
+void
+qemuDomainReAttachHostScsiDevices(virQEMUDriverPtr driver,
+                                  const char *name,
+                                  virDomainHostdevDefPtr *hostdevs,
+                                  int nhostdevs)
+{
+    size_t i;
+    virHostdevManagerPtr hostdev_mgr = driver->hostdevMgr;
+
+    for (i = 0; i < nhostdevs; i++) {
+        virDomainHostdevDefPtr hostdev = hostdevs[i];
+        virDomainDeviceDef dev;
+
+        dev.type = VIR_DOMAIN_DEVICE_HOSTDEV;
+        dev.data.hostdev = hostdev;
+
+        ignore_value(qemuRemoveSharedDevice(driver, &dev, name));
+    }
+
+    virHostdevReAttachScsiHostdevs(hostdev_mgr, name, hostdevs, nhostdevs);
+}
+
 void
 qemuDomainReAttachHostDevices(virQEMUDriverPtr driver,
                               virDomainDefPtr def)