--- src/openvz/openvz_conf.c | 3 ++- src/openvz/openvz_conf.h | 1 + src/openvz/openvz_driver.c | 16 ++++++++++------ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/openvz/openvz_conf.c b/src/openvz/openvz_conf.c index fde32ce..f175655 100644 --- a/src/openvz/openvz_conf.c +++ b/src/openvz/openvz_conf.c @@ -558,6 +558,7 @@ openvzFreeDriver(struct openvz_driver *driver) if (!driver) return; + virObjectUnref(driver->xmlconf); virObjectUnref(driver->domains); virObjectUnref(driver->caps); VIR_FREE(driver); @@ -648,7 +649,7 @@ int openvzLoadDomains(struct openvz_driver *driver) { flags |= VIR_DOMAIN_OBJ_LIST_ADD_LIVE; if (!(dom = virDomainObjListAdd(driver->domains, - driver->caps, + driver->xmlconf, def, flags, NULL))) diff --git a/src/openvz/openvz_conf.h b/src/openvz/openvz_conf.h index d7f21b3..a030b42 100644 --- a/src/openvz/openvz_conf.h +++ b/src/openvz/openvz_conf.h @@ -45,6 +45,7 @@ struct openvz_driver { virMutex lock; virCapsPtr caps; + virDomainXMLConfPtr xmlconf; virDomainObjListPtr domains; int version; }; diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 3865206..67d66ae 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -955,8 +955,8 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml) virDomainPtr dom = NULL; openvzDriverLock(driver); - if ((vmdef = virDomainDefParseString(driver->caps, xml, - 1 << VIR_DOMAIN_VIRT_OPENVZ, + if ((vmdef = virDomainDefParseString(driver->caps, driver->xmlconf, + xml, 1 << VIR_DOMAIN_VIRT_OPENVZ, VIR_DOMAIN_XML_INACTIVE)) == NULL) goto cleanup; @@ -968,7 +968,7 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml) goto cleanup; } if (!(vm = virDomainObjListAdd(driver->domains, - driver->caps, + driver->xmlconf, vmdef, 0, NULL))) goto cleanup; vmdef = NULL; @@ -1042,8 +1042,8 @@ openvzDomainCreateXML(virConnectPtr conn, const char *xml, virCheckFlags(0, NULL); openvzDriverLock(driver); - if ((vmdef = virDomainDefParseString(driver->caps, xml, - 1 << VIR_DOMAIN_VIRT_OPENVZ, + if ((vmdef = virDomainDefParseString(driver->caps, driver->xmlconf, + xml, 1 << VIR_DOMAIN_VIRT_OPENVZ, VIR_DOMAIN_XML_INACTIVE)) == NULL) goto cleanup; @@ -1055,7 +1055,7 @@ openvzDomainCreateXML(virConnectPtr conn, const char *xml, goto cleanup; } if (!(vm = virDomainObjListAdd(driver->domains, - driver->caps, + driver->xmlconf, vmdef, VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE, NULL))) @@ -1453,6 +1453,9 @@ static virDrvOpenStatus openvzOpen(virConnectPtr conn, if (!(driver->caps = openvzCapsInit())) goto cleanup; + if (!(driver->xmlconf = virDomainXMLConfNew(NULL, NULL))) + goto cleanup; + if (openvzLoadDomains(driver) < 0) goto cleanup; @@ -2076,6 +2079,7 @@ openvzDomainUpdateDeviceFlags(virDomainPtr dom, const char *xml, } if (virDomainLiveConfigHelperMethod(driver->caps, + driver->xmlconf, vm, &flags, &vmdef) < 0) -- 1.8.1.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list