]> xenbits.xensource.com Git - libvirt.git/commitdiff
xen: move virDomainDefPostParse to xenParseSxpr
authorPavel Hrdina <phrdina@redhat.com>
Thu, 7 Jan 2016 07:59:26 +0000 (08:59 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Fri, 8 Jan 2016 13:45:20 +0000 (14:45 +0100)
This patch partially reverts previous commit 91a00424 and moves the post
parse function to xenParseSxpr.  This update is required because xen
driver calls xenParseSxpr directly.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/xen/xend_internal.c
src/xenconfig/xen_sxpr.c
src/xenconfig/xen_sxpr.h

index db3820d9651bb3b088d89cd7747faf0b2073975d..cf7cdd034c8b86b6b4e1e3da8931c39283445831 100644 (file)
@@ -1552,7 +1552,9 @@ xenDaemonDomainFetch(virConnectPtr conn, int domid, const char *name,
     if (!(def = xenParseSxpr(root,
                              cpus,
                              tty,
-                             vncport)))
+                             vncport,
+                             priv->caps,
+                             priv->xmlopt)))
         goto cleanup;
 
  cleanup:
@@ -3082,7 +3084,8 @@ xenDaemonDomainBlockPeek(virConnectPtr conn,
     vncport = xenStoreDomainGetVNCPort(conn, id);
     xenUnifiedUnlock(priv);
 
-    if (!(def = xenParseSxpr(root, NULL, tty, vncport)))
+    if (!(def = xenParseSxpr(root, NULL, tty, vncport,
+                             priv->caps, priv->xmlopt)))
         goto cleanup;
 
     if (!(actual = virDomainDiskPathByName(def, path))) {
index d99bac0038935c197909da2a8975d96734bd1720..d7b700d647580240432ec05ca78aae588d8f662a 100644 (file)
@@ -1065,7 +1065,11 @@ xenParseSxprPCI(virDomainDefPtr def,
  */
 virDomainDefPtr
 xenParseSxpr(const struct sexpr *root,
-             const char *cpus, char *tty, int vncport)
+             const char *cpus,
+             char *tty,
+             int vncport,
+             virCapsPtr caps,
+             virDomainXMLOptionPtr xmlopt)
 {
     const char *tmp;
     virDomainDefPtr def;
@@ -1371,6 +1375,10 @@ xenParseSxpr(const struct sexpr *root,
             goto error;
     }
 
+    if (virDomainDefPostParse(def, caps, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
+                              xmlopt) < 0)
+        goto error;
+
     return def;
 
  error:
@@ -1405,16 +1413,7 @@ xenParseSxprString(const char *sexpr,
     if (!root)
         return NULL;
 
-    if (!(def = xenParseSxpr(root, NULL, tty, vncport)))
-        goto cleanup;
-
-    if (virDomainDefPostParse(def, caps, VIR_DOMAIN_DEF_PARSE_ABI_UPDATE,
-                              xmlopt) < 0) {
-        virDomainDefFree(def);
-        def = NULL;
-    }
-
- cleanup:
+    def = xenParseSxpr(root, NULL, tty, vncport, caps, xmlopt);
     sexpr_free(root);
 
     return def;
index a4f4c449b20b046bf44ee9e1264760f32d73d08b..e925208b5d84409bdc65122be418fc61cc3d6abe 100644 (file)
@@ -43,7 +43,11 @@ virDomainDefPtr xenParseSxprString(const char *sexpr,
                                    virDomainXMLOptionPtr xmlopt);
 
 virDomainDefPtr xenParseSxpr(const struct sexpr *root,
-                             const char *cpus, char *tty, int vncport);
+                             const char *cpus,
+                             char *tty,
+                             int vncport,
+                             virCapsPtr caps,
+                             virDomainXMLOptionPtr xmlopt);
 
 int xenParseSxprSound(virDomainDefPtr def, const char *str);