Re: [PATCH] libxl: Drop driver lock in libxlDomainDefineXML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 18.09.2014 23:17, Jim Fehlig wrote:
There is no need to acquire the driver-wide lock in
libxlDomainDefineXML.  When switching to jobs in the libxl
driver, most driver-wide locks were removed.  The locking here
was preserved since I mistakenly thought virDomainObjListAdd
needed protection.  This is not the case, so remove the
unnecessary locking.

Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx>
---
  src/libxl/libxl_driver.c | 13 +++----------
  1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index 2f2c590..d4ecd62 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -2381,25 +2381,22 @@ libxlDomainDefineXML(virConnectPtr conn, const char *xml)
      virObjectEventPtr event = NULL;
      virDomainDefPtr oldDef = NULL;

-    /* Lock the driver until the virDomainObj is created and locked */
-    libxlDriverLock(driver);
      if (!(def = virDomainDefParseString(xml, cfg->caps, driver->xmlopt,
                                          1 << VIR_DOMAIN_VIRT_XEN,
                                          VIR_DOMAIN_XML_INACTIVE)))
-        goto cleanup_unlock;
+        goto cleanup;

      if (virDomainDefineXMLEnsureACL(conn, def) < 0)
-        goto cleanup_unlock;
+        goto cleanup;

      if (!(vm = virDomainObjListAdd(driver->domains, def,
                                     driver->xmlopt,
                                     0,
                                     &oldDef)))
-        goto cleanup_unlock;
+        goto cleanup;

      def = NULL;
      vm->persistent = 1;
-    libxlDriverUnlock(driver);

      if (virDomainSaveConfig(cfg->configDir,
                              vm->newDef ? vm->newDef : vm->def) < 0) {
@@ -2426,10 +2423,6 @@ libxlDomainDefineXML(virConnectPtr conn, const char *xml)
          libxlDomainEventQueue(driver, event);
      virObjectUnref(cfg);
      return dom;
-
- cleanup_unlock:
-    libxlDriverUnlock(driver);
-    goto cleanup;
  }

  static int


ACK

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]