From c78923732d2067ec5d6e9b3fd82e4e3a1592df92 Mon Sep 17 00:00:00 2001 From: Jim Fehlig Date: Thu, 18 Sep 2014 15:05:34 -0600 Subject: [PATCH] libxl: Drop driver lock in libxlDomainDefineXML 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. --- 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 2f2c590ee9..d4ecd62d4b 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