[libvirt] [PATCH] libxl: Fix Xen 4.4 libxlVmStart logic

Jason Andryuk andryuk at aero.org
Tue Nov 12 17:41:12 UTC 2013


ifdef LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS hides a multi-line body
for a brace-less else.  Add braces to ensure proper logic is applied.

Without this fix, new domains cannot be started.  Both
libxl_domain_create_new and libxl_domain_create_restore are called when
starting a new domain leading to this error:
libxl: error: libxl.c:324:libxl__domain_rename: domain with name "guest" already exists.
libxl: error: libxl_create.c:800:initiate_domain_create: cannot make domain: -6
---
 src/libxl/libxl_driver.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
index ab0233a..0ff731f 100644
--- a/src/libxl/libxl_driver.c
+++ b/src/libxl/libxl_driver.c
@@ -660,10 +660,10 @@ libxlVmStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
 
     /* use as synchronous operations => ao_how = NULL and no intermediate reports => ao_progress = NULL */
 
-    if (restore_fd < 0)
+    if (restore_fd < 0) {
         ret = libxl_domain_create_new(priv->ctx, &d_config,
                                       &domid, NULL, NULL);
-    else
+    } else {
 #ifdef LIBXL_HAVE_DOMAIN_CREATE_RESTORE_PARAMS
         params.checkpointed_stream = 0;
         ret = libxl_domain_create_restore(priv->ctx, &d_config, &domid,
@@ -672,6 +672,7 @@ libxlVmStart(libxlDriverPrivatePtr driver, virDomainObjPtr vm,
         ret = libxl_domain_create_restore(priv->ctx, &d_config, &domid,
                                           restore_fd, NULL, NULL);
 #endif
+    }
 
     if (ret) {
         if (restore_fd < 0)
-- 
1.8.3.1




More information about the libvir-list mailing list