]> xenbits.xensource.com Git - libvirt.git/commitdiff
Wed Jul 5 17:11:32 IST 2006 Mark McLoughlin <markmc@redhat.com>
authorMark McLoughlin <markmc@redhat.com>
Fri, 7 Jul 2006 14:36:27 +0000 (14:36 +0000)
committerMark McLoughlin <markmc@redhat.com>
Fri, 7 Jul 2006 14:36:27 +0000 (14:36 +0000)
* xml.c: allow a <domain> to not have any <disk> devices - e.g.
when using an NFS root.

ChangeLog
src/xml.c

index 9e447a138835e1b94f8134da94b5b9544dfeb305..eee4e222d994187c2fc066805ed117a467b7a618 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Jul  5 17:11:32 IST 2006 Mark McLoughlin <markmc@redhat.com>
+
+       * xml.c: allow a <domain> to not have any <disk> devices - e.g.
+       when using an NFS root.
+       
 Thu Jul  6 10:32:14 CEST 2006 Daniel Veillard <veillard@redhat.com>
 
        * src/xend_internal.c: fixed xenDaemonOpen() to try both unix and
index f967dfc6c86029b39df764d9c2260783b7611881..44ea2ee66d568ef158a8b592f67932757cfce123 100644 (file)
--- a/src/xml.c
+++ b/src/xml.c
@@ -944,20 +944,19 @@ virDomainParseXMLDesc(const char *xmldesc, char **name)
 
     /* analyze of the devices */
     obj = xmlXPathEval(BAD_CAST "/domain/devices/disk", ctxt);
-    if ((obj == NULL) || (obj->type != XPATH_NODESET) ||
-        (obj->nodesetval == NULL) || (obj->nodesetval->nodeNr < 1)) {
-        virXMLError(VIR_ERR_NO_DEVICE, nam, 0);
-        goto error;
-    }
-    for (i = 0; i < obj->nodesetval->nodeNr; i++) {
-        virBufferAdd(&buf, "(device ", 8);
-        res = virDomainParseXMLDiskDesc(obj->nodesetval->nodeTab[i], &buf);
-        if (res != 0) {
-            goto error;
-        }
-        virBufferAdd(&buf, ")", 1);
+    if ((obj != NULL) && (obj->type == XPATH_NODESET) &&
+        (obj->nodesetval != NULL) && (obj->nodesetval->nodeNr >= 0)) {
+       for (i = 0; i < obj->nodesetval->nodeNr; i++) {
+           virBufferAdd(&buf, "(device ", 8);
+           res = virDomainParseXMLDiskDesc(obj->nodesetval->nodeTab[i], &buf);
+           if (res != 0) {
+               goto error;
+           }
+           virBufferAdd(&buf, ")", 1);
+       }
     }
     xmlXPathFreeObject(obj);
+
     obj = xmlXPathEval(BAD_CAST "/domain/devices/interface", ctxt);
     if ((obj != NULL) && (obj->type == XPATH_NODESET) &&
         (obj->nodesetval != NULL) && (obj->nodesetval->nodeNr >= 0)) {