From ecc2735480bafb3b144ce246e1eb02f47f49f6ed Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Fri, 19 Aug 2011 08:19:34 -0600 Subject: [PATCH] Revert "xen: Allow to undefine a running domain (xm_internal)" ACK was given too soon. According to the code, the xm driver is only used for inactive domains, and has no notion of an active domain, thus, it cannot support undefine of a running domain. The real fix for xen needs to be in the unified driver and/or the xend level. This reverts commit 49186deda62161599877b0de6f7f4345c50d842a. --- src/xen/xm_internal.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index 5c8a017757..95387c9229 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -1218,6 +1218,8 @@ int xenXMDomainUndefine(virDomainPtr domain) { return (-1); } + if (domain->id != -1) + return (-1); if (domain->conn->flags & VIR_CONNECT_RO) return (-1); @@ -1233,17 +1235,13 @@ int xenXMDomainUndefine(virDomainPtr domain) { if (unlink(entry->filename) < 0) goto cleanup; - if (virDomainObjIsActive(vm)) { - vm->persistent = 0; - } else { - /* Remove the name -> filename mapping */ - if (virHashRemoveEntry(priv->nameConfigMap, domain->name) < 0) - goto cleanup; + /* Remove the name -> filename mapping */ + if (virHashRemoveEntry(priv->nameConfigMap, domain->name) < 0) + goto cleanup; - /* Remove the config record itself */ - if (virHashRemoveEntry(priv->configCache, entry->filename) < 0) - goto cleanup; - } + /* Remove the config record itself */ + if (virHashRemoveEntry(priv->configCache, entry->filename) < 0) + goto cleanup; ret = 0;