Daniel P. Berrange wrote: > From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> > > Directly call either the XenD or XM driver when starting > a persistent domain > > Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> > --- > src/xen/xen_driver.c | 20 +++++++------------- > src/xen/xen_driver.h | 1 - > src/xen/xend_internal.c | 20 +------------------- > src/xen/xm_internal.c | 4 ---- > 4 files changed, 8 insertions(+), 37 deletions(-) > > diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c > index f504539..f6c1891 100644 > --- a/src/xen/xen_driver.c > +++ b/src/xen/xen_driver.c > @@ -1333,7 +1333,6 @@ static int > xenUnifiedDomainCreateWithFlags(virDomainPtr dom, unsigned int flags) > { > xenUnifiedPrivatePtr priv = dom->conn->privateData; > - int i; > int ret = -1; > char *name = NULL; > > @@ -1344,21 +1343,16 @@ xenUnifiedDomainCreateWithFlags(virDomainPtr dom, unsigned int flags) > goto cleanup; > > if (virFileExists(name)) { > - if (priv->opened[XEN_UNIFIED_XEND_OFFSET]) { > - ret = xenDaemonDomainRestore(dom->conn, name); > - if (ret == 0) > - unlink(name); > - } > + ret = xenDaemonDomainRestore(dom->conn, name); > + if (ret == 0) > + unlink(name); > goto cleanup; > } > > - for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i) { > - if (priv->opened[i] && drivers[i]->xenDomainCreate && > - drivers[i]->xenDomainCreate(dom) == 0) { > - ret = 0; > - goto cleanup; > - } > - } > + if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) > + ret = xenXMDomainCreate(dom); > + else > + ret = xenDaemonDomainCreate(dom); > > cleanup: > VIR_FREE(name); > diff --git a/src/xen/xen_driver.h b/src/xen/xen_driver.h > index c756dde..e2c0d68 100644 > --- a/src/xen/xen_driver.h > +++ b/src/xen/xen_driver.h > @@ -93,7 +93,6 @@ extern int xenRegister (void); > * structure with direct calls in xen_unified.c. > */ > struct xenUnifiedDriver { > - virDrvDomainCreate xenDomainCreate; > virDrvDomainDefineXML xenDomainDefineXML; > virDrvDomainUndefine xenDomainUndefine; > virDrvDomainAttachDeviceFlags xenDomainAttachDeviceFlags; > diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c > index addc547..dcd31de 100644 > --- a/src/xen/xend_internal.c > +++ b/src/xen/xend_internal.c > @@ -2899,24 +2899,7 @@ xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc) > int > xenDaemonDomainCreate(virDomainPtr domain) > { > - xenUnifiedPrivatePtr priv = domain->conn->privateData; > - int ret; > - virDomainPtr tmp; > - > - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) > - return -1; > - > - ret = xend_op(domain->conn, domain->name, "op", "start", NULL); > - > - if (ret != -1) { > - /* Need to force a refresh of this object's ID */ > - tmp = virDomainLookupByName(domain->conn, domain->name); > - if (tmp) { > - domain->id = tmp->id; > - virDomainFree(tmp); > - } > - } > Should this bit about updating the domain id be removed? Will the dom id remain at -1? If the id needs updated, it should probably be retrieved directly from xend. Regards, Jim > > - return ret; > + return xend_op(domain->conn, domain->name, "op", "start", NULL); > } > > int > @@ -3378,7 +3361,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain, > } > > struct xenUnifiedDriver xenDaemonDriver = { > - .xenDomainCreate = xenDaemonDomainCreate, > .xenDomainDefineXML = xenDaemonDomainDefineXML, > .xenDomainUndefine = xenDaemonDomainUndefine, > .xenDomainAttachDeviceFlags = xenDaemonAttachDeviceFlags, > diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c > index f5348bd..505f959 100644 > --- a/src/xen/xm_internal.c > +++ b/src/xen/xm_internal.c > @@ -81,7 +81,6 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml, > #define XM_XML_ERROR "Invalid xml" > > struct xenUnifiedDriver xenXMDriver = { > - .xenDomainCreate = xenXMDomainCreate, > .xenDomainDefineXML = xenXMDomainDefineXML, > .xenDomainUndefine = xenXMDomainUndefine, > .xenDomainAttachDeviceFlags = xenXMDomainAttachDeviceFlags, > @@ -923,9 +922,6 @@ xenXMDomainCreate(virDomainPtr domain) > const char *filename; > xenXMConfCachePtr entry; > > - if (domain->id != -1) > - return -1; > - > xenUnifiedLock(priv); > > if (!(filename = virHashLookup(priv->nameConfigMap, domain->name))) > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list