]> xenbits.xensource.com Git - libvirt.git/commitdiff
extract general code of NodeDeviceDetach
authorChunyan Liu <cyliu@suse.com>
Thu, 6 Mar 2014 06:57:02 +0000 (14:57 +0800)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 12 Mar 2014 16:03:06 +0000 (16:03 +0000)
src/qemu/qemu_driver.c

index 1c0700389dd2e7e6cd7029e48ebbd2a52fe8860b..6562a1ded3247e351bac43ac4cc5256bb70c2287 100644 (file)
@@ -11264,6 +11264,27 @@ out:
     return ret;
 }
 
+static int
+virHostdevPciNodeDeviceDetach(virHostdevManagerPtr hostdev_mgr,
+                              virPCIDevicePtr pci)
+{
+    int ret = -1;
+
+    virObjectLock(hostdev_mgr->activePciHostdevs);
+    virObjectLock(hostdev_mgr->inactivePciHostdevs);
+
+    if (virPCIDeviceDetach(pci, hostdev_mgr->activePciHostdevs,
+                           hostdev_mgr->inactivePciHostdevs) < 0) {
+        goto out;
+    }
+
+    ret = 0;
+out:
+    virObjectUnlock(hostdev_mgr->inactivePciHostdevs);
+    virObjectUnlock(hostdev_mgr->activePciHostdevs);
+    return ret;
+}
+
 static int
 qemuNodeDeviceDetachFlags(virNodeDevicePtr dev,
                           const char *driverName,
@@ -11336,18 +11357,7 @@ qemuNodeDeviceDetachFlags(virNodeDevicePtr dev,
         goto cleanup;
     }
 
-    virObjectLock(hostdev_mgr->activePciHostdevs);
-    virObjectLock(hostdev_mgr->inactivePciHostdevs);
-
-    if (virPCIDeviceDetach(pci, hostdev_mgr->activePciHostdevs,
-                           hostdev_mgr->inactivePciHostdevs) < 0) {
-        goto out;
-    }
-
-    ret = 0;
-out:
-    virObjectUnlock(hostdev_mgr->inactivePciHostdevs);
-    virObjectUnlock(hostdev_mgr->activePciHostdevs);
+    ret = virHostdevPciNodeDeviceDetach(hostdev_mgr, pci);
 cleanup:
     virPCIDeviceFree(pci);
     virNodeDeviceDefFree(def);