[libvirt] [PATCH 9/9] Terminate backing chains explicitly

Peter Krempa posted 9 patches 7 years, 7 months ago
[libvirt] [PATCH 9/9] Terminate backing chains explicitly
Posted by Peter Krempa 7 years, 7 months ago
Express a properly terminated backing chain by putting a
virStorageSource of type VIR_STORAGE_TYPE_NONE in the chain. The newly
used helpers simplify this greatly.

The change fixes a bug as formatting an incomplete backing chain and
parsing it back would end up in expressing a terminated chain since
src->backingStoreRaw was not populated. By relying on the terminator
object this can be now processed appropriately.
---
 src/conf/domain_conf.c                             | 42 ++++++++----------
 src/storage/storage_source.c                       | 50 +++++++++++-----------
 src/util/virstoragefile.c                          |  5 ++-
 .../qemuhotplug-base-ccw-live+ccw-virtio.xml       |  1 -
 ...live-with-2-ccw-virtio+ccw-virtio-1-reverse.xml |  2 -
 ...qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml |  1 -
 ...-live-with-ccw-virtio+ccw-virtio-2-explicit.xml |  2 -
 ...-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml |  2 -
 .../qemuhotplug-base-ccw-live-with-ccw-virtio.xml  |  1 -
 ...-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml |  2 -
 .../qemuhotplug-base-live+disk-scsi.xml            |  1 -
 .../qemuhotplug-base-live+disk-usb.xml             |  1 -
 .../qemuhotplug-base-live+disk-virtio.xml          |  1 -
 ...se-without-scsi-controller-live+disk-scsi-2.xml |  1 -
 ...otplug-console-compat-2-live+console-virtio.xml |  2 -
 .../qemuhotplug-console-compat-2-live.xml          |  2 -
 .../qemuxml2xmlout-channel-virtio-state-active.xml |  1 -
 .../qemuxml2xmlout-disk-active-commit.xml          |  1 -
 .../qemuxml2xmlout-disk-backing-chains-active.xml  |  5 ---
 .../qemuxml2xmlout-disk-mirror-active.xml          |  4 --
 .../qemuxml2xmlout-disk-mirror-old.xml             |  4 --
 .../qemuxml2xmlout-seclabel-static-labelskip.xml   |  1 -
 tests/sexpr2xmldata/sexpr2xml-boot-grub.xml        |  1 -
 tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml    |  1 -
 tests/sexpr2xmldata/sexpr2xml-curmem.xml           |  1 -
 .../sexpr2xml-disk-block-shareable.xml             |  1 -
 tests/sexpr2xmldata/sexpr2xml-disk-block.xml       |  1 -
 .../sexpr2xml-disk-drv-blktap-qcow.xml             |  1 -
 .../sexpr2xml-disk-drv-blktap-raw.xml              |  1 -
 .../sexpr2xml-disk-drv-blktap2-raw.xml             |  1 -
 tests/sexpr2xmldata/sexpr2xml-disk-file.xml        |  1 -
 tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml      |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml  |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml    |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml  |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml        |  1 -
 tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml     |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml  |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml  |  2 -
 .../sexpr2xml-fv-serial-dev-2-ports.xml            |  2 -
 .../sexpr2xml-fv-serial-dev-2nd-port.xml           |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml   |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml   |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml   |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml    |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml  |  2 -
 .../sexpr2xml-fv-serial-tcp-telnet.xml             |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml    |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml    |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml   |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml     |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-sound.xml         |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml      |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml     |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-utc.xml           |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv-v2.xml            |  2 -
 tests/sexpr2xmldata/sexpr2xml-fv.xml               |  2 -
 tests/sexpr2xmldata/sexpr2xml-net-bridged.xml      |  1 -
 tests/sexpr2xmldata/sexpr2xml-net-e1000.xml        |  1 -
 tests/sexpr2xmldata/sexpr2xml-net-routed.xml       |  1 -
 tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml  |  2 -
 tests/sexpr2xmldata/sexpr2xml-pci-devs.xml         |  1 -
 .../sexpr2xml-pv-bootloader-cmdline.xml            |  1 -
 tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml    |  1 -
 tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml     |  1 -
 tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml         |  1 -
 .../sexpr2xml-pv-vfb-new-vncdisplay.xml            |  1 -
 tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml       |  1 -
 .../sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml  |  1 -
 tests/sexpr2xmldata/sexpr2xml-pv.xml               |  1 -
 tests/sexpr2xmldata/sexpr2xml-vif-rate.xml         |  2 -
 71 files changed, 46 insertions(+), 162 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3eb6c7f6f..22f65b666 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -8277,6 +8277,15 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
         goto cleanup;
     }

+    if (!(type = virXMLPropString(ctxt->node, "type"))) {
+        /* terminator does not have a type */
+        if (VIR_ALLOC(backingStore) < 0)
+            goto cleanup;
+
+        ret = 0;
+        goto cleanup;
+    }
+
     if (VIR_ALLOC(backingStore) < 0)
         goto cleanup;

@@ -8287,12 +8296,6 @@ virDomainDiskBackingStoreParse(xmlXPathContextPtr ctxt,
         goto cleanup;
     }

-    if (!(type = virXMLPropString(ctxt->node, "type"))) {
-        virReportError(VIR_ERR_XML_ERROR, "%s",
-                       _("missing disk backing store type"));
-        goto cleanup;
-    }
-
     backingStore->type = virStorageTypeFromString(type);
     if (backingStore->type <= 0) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
@@ -21905,24 +21908,16 @@ virDomainDiskSourceFormat(virBufferPtr buf,

 static int
 virDomainDiskBackingStoreFormat(virBufferPtr buf,
-                                virStorageSourcePtr backingStore,
-                                const char *backingStoreRaw)
+                                virStorageSourcePtr backingStore)
 {
-    const char *type;
     const char *format;

-    if (!backingStore) {
-        if (!backingStoreRaw)
-            virBufferAddLit(buf, "<backingStore/>\n");
+    if (!backingStore)
         return 0;
-    }

-    if (!backingStore->type ||
-        !(type = virStorageTypeToString(backingStore->type))) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("unexpected disk backing store type %d"),
-                       backingStore->type);
-        return -1;
+    if (backingStore->type == VIR_STORAGE_TYPE_NONE) {
+        virBufferAddLit(buf, "<backingStore/>\n");
+        return 0;
     }

     if (backingStore->format <= 0 ||
@@ -21933,7 +21928,8 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf,
         return -1;
     }

-    virBufferAsprintf(buf, "<backingStore type='%s'", type);
+    virBufferAsprintf(buf, "<backingStore type='%s'",
+                      virStorageTypeToString(backingStore->type));
     if (backingStore->id != 0)
         virBufferAsprintf(buf, " index='%u'", backingStore->id);
     virBufferAddLit(buf, ">\n");
@@ -21943,8 +21939,7 @@ virDomainDiskBackingStoreFormat(virBufferPtr buf,
     /* We currently don't output seclabels for backing chain element */
     if (virDomainDiskSourceFormatInternal(buf, backingStore, 0, 0, true) < 0 ||
         virDomainDiskBackingStoreFormat(buf,
-                                        backingStore->backingStore,
-                                        backingStore->backingStoreRaw) < 0)
+                                        backingStore->backingStore) < 0)
         return -1;

     virBufferAdjustIndent(buf, -2);
@@ -22079,8 +22074,7 @@ virDomainDiskDefFormat(virBufferPtr buf,
     /* Don't format backingStore to inactive XMLs until the code for
      * persistent storage of backing chains is ready. */
     if (!(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE) &&
-        virDomainDiskBackingStoreFormat(buf, def->src->backingStore,
-                                        def->src->backingStoreRaw) < 0)
+        virDomainDiskBackingStoreFormat(buf, def->src->backingStore) < 0)
         return -1;

     virBufferEscapeString(buf, "<backenddomain name='%s'/>\n", def->domain_name);
diff --git a/src/storage/storage_source.c b/src/storage/storage_source.c
index 47b08f416..419fa3d43 100644
--- a/src/storage/storage_source.c
+++ b/src/storage/storage_source.c
@@ -456,33 +456,33 @@ virStorageFileGetMetadataRecurse(virStorageSourcePtr src,
                                           &backingFormat) < 0)
         goto cleanup;

-    /* check whether we need to go deeper */
-    if (!src->backingStoreRaw) {
-        ret = 0;
-        goto cleanup;
-    }
-
-    if (!(backingStore = virStorageSourceNewFromBacking(src)))
-        goto cleanup;
-
-    if (backingFormat == VIR_STORAGE_FILE_AUTO && !allow_probe)
-        backingStore->format = VIR_STORAGE_FILE_RAW;
-    else if (backingFormat == VIR_STORAGE_FILE_AUTO_SAFE)
-        backingStore->format = VIR_STORAGE_FILE_AUTO;
-    else
-        backingStore->format = backingFormat;
-
-    if ((ret = virStorageFileGetMetadataRecurse(backingStore, parent,
-                                                uid, gid,
-                                                allow_probe, report_broken,
-                                                cycle, depth + 1)) < 0) {
-        if (report_broken)
+    if (src->backingStoreRaw) {
+        if (!(backingStore = virStorageSourceNewFromBacking(src)))
             goto cleanup;

-        /* if we fail somewhere midway, just accept and return a
-         * broken chain */
-        ret = 0;
-        goto cleanup;
+        if (backingFormat == VIR_STORAGE_FILE_AUTO && !allow_probe)
+            backingStore->format = VIR_STORAGE_FILE_RAW;
+        else if (backingFormat == VIR_STORAGE_FILE_AUTO_SAFE)
+            backingStore->format = VIR_STORAGE_FILE_AUTO;
+        else
+            backingStore->format = backingFormat;
+
+        if ((ret = virStorageFileGetMetadataRecurse(backingStore, parent,
+                                                    uid, gid,
+                                                    allow_probe, report_broken,
+                                                    cycle, depth + 1)) < 0) {
+            if (report_broken)
+                goto cleanup;
+
+            /* if we fail somewhere midway, just accept and return a
+             * broken chain */
+            ret = 0;
+            goto cleanup;
+        }
+    } else {
+        /* add terminator */
+        if (VIR_ALLOC(backingStore) < 0)
+            goto cleanup;
     }

     src->backingStore = backingStore;
diff --git a/src/util/virstoragefile.c b/src/util/virstoragefile.c
index 93995a331..59229631b 100644
--- a/src/util/virstoragefile.c
+++ b/src/util/virstoragefile.c
@@ -1577,7 +1577,7 @@ virStorageFileParseChainIndex(const char *diskTarget,
 bool
 virStorageSourceIsBacking(const virStorageSource *src)
 {
-    return !!src;
+    return src && src->type != VIR_STORAGE_TYPE_NONE;
 }

 /**
@@ -1589,7 +1589,8 @@ virStorageSourceIsBacking(const virStorageSource *src)
 bool
 virStorageSourceHasBacking(const virStorageSource *src)
 {
-    return virStorageSourceIsBacking(src) && src->backingStore;
+    return virStorageSourceIsBacking(src) && src->backingStore &&
+           src->backingStore->type != VIR_STORAGE_TYPE_NONE;
 }


diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml
index cd03d0e09..0fa8d036b 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='vde' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio+ccw-virtio-1-reverse.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio+ccw-virtio-1-reverse.xml
index 7be75f977..135427fff 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio+ccw-virtio-1-reverse.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio+ccw-virtio-1-reverse.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='hda' bus='virtio'/>
       <readonly/>
       <shareable/>
@@ -32,7 +31,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='hdb' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml
index a83f1b5d7..e17c4e43b 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-2-ccw-virtio.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='hda' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2-explicit.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2-explicit.xml
index 0a51993cc..326d312fa 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2-explicit.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2-explicit.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='hda' bus='virtio'/>
       <readonly/>
       <shareable/>
@@ -32,7 +31,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='vde' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml
index 0a51993cc..326d312fa 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio+ccw-virtio-2.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='hda' bus='virtio'/>
       <readonly/>
       <shareable/>
@@ -32,7 +31,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='vde' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio.xml
index cd03d0e09..0fa8d036b 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live-with-ccw-virtio.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='vde' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml
index 4c3ea3202..9482b6794 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi-wwn+disk-scsi-duplicate-wwn.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='sdf' bus='scsi'/>
       <readonly/>
       <shareable/>
@@ -33,7 +32,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='sdg' bus='scsi'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi.xml
index 493a615fd..a6dbf0b1b 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-scsi.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='sdf' bus='scsi'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-usb.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-usb.xml
index 3609819ea..6ccb88f14 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-usb.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-usb.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='sdq' bus='usb'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-virtio.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-virtio.xml
index b88b220e3..b97c0b41e 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-virtio.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-live+disk-virtio.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='vde' bus='virtio'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-base-without-scsi-controller-live+disk-scsi-2.xml b/tests/qemuhotplugtestdomains/qemuhotplug-base-without-scsi-controller-live+disk-scsi-2.xml
index c12d18f71..6422e1640 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-base-without-scsi-controller-live+disk-scsi-2.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-without-scsi-controller-live+disk-scsi-2.xml
@@ -22,7 +22,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/dev/null'/>
-      <backingStore/>
       <target dev='sdf' bus='scsi'/>
       <readonly/>
       <shareable/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml
index 7ca36d57b..4e1dd49c2 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live+console-virtio.xml
@@ -29,7 +29,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='qcow2' cache='none'/>
       <source file='/var/lib/libvirt/images/f17.qcow2'/>
-      <backingStore/>
       <target dev='vda' bus='virtio'/>
       <alias name='virtio-disk0'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
@@ -37,7 +36,6 @@
     <disk type='file' device='cdrom'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/home/user/tmp/Fedora-17-x86_64-Live-KDE.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <alias name='ide0-1-0'/>
diff --git a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml
index f300940a3..c56d13ef4 100644
--- a/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml
+++ b/tests/qemuhotplugtestdomains/qemuhotplug-console-compat-2-live.xml
@@ -29,7 +29,6 @@
     <disk type='file' device='disk'>
       <driver name='qemu' type='qcow2' cache='none'/>
       <source file='/var/lib/libvirt/images/f17.qcow2'/>
-      <backingStore/>
       <target dev='vda' bus='virtio'/>
       <alias name='virtio-disk0'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
@@ -37,7 +36,6 @@
     <disk type='file' device='cdrom'>
       <driver name='qemu' type='raw' cache='none'/>
       <source file='/home/user/tmp/Fedora-17-x86_64-Live-KDE.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <alias name='ide0-1-0'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-state-active.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-state-active.xml
index 8cddbeff7..7d93fc0c0 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-state-active.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-channel-virtio-state-active.xml
@@ -16,7 +16,6 @@
     <emulator>/usr/bin/qemu-system-i686</emulator>
     <disk type='block' device='disk'>
       <source dev='/dev/HostVG/QEMUGuest1'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml
index cc26af109..5766e4aea 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-active-commit.xml
@@ -20,7 +20,6 @@
       <backingStore type='block' index='1'>
         <format type='raw'/>
         <source dev='/dev/HostVG/QEMUGuest1'/>
-        <backingStore/>
       </backingStore>
       <mirror type='block' job='active-commit'>
         <format type='raw'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml
index 83d47df56..828defcc2 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-backing-chains-active.xml
@@ -22,7 +22,6 @@
       <backingStore type='file' index='1'>
         <format type='qcow2'/>
         <source file='/tmp/missing-backing-store.qcow'/>
-        <backingStore/>
       </backingStore>
       <target dev='vda' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
@@ -50,7 +49,6 @@
                 <backingStore type='file' index='6'>
                   <format type='raw'/>
                   <source file='/tmp/Fedora-17-x86_64-Live-KDE.iso'/>
-                  <backingStore/>
                 </backingStore>
               </backingStore>
             </backingStore>
@@ -65,7 +63,6 @@
       <source protocol='gluster' name='Volume1/Image'>
         <host name='example.org' port='6000'/>
       </source>
-      <backingStore/>
       <target dev='vdc' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
     </disk>
@@ -82,7 +79,6 @@
       <backingStore type='file' index='1'>
         <format type='qcow2'/>
         <source file='/tmp/image.qcow'/>
-        <backingStore/>
       </backingStore>
       <target dev='vdd' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
@@ -90,7 +86,6 @@
     <disk type='block' device='disk'>
       <driver name='qemu' type='qcow2'/>
       <source dev='/dev/HostVG/QEMUGuest11'/>
-      <backingStore/>
       <target dev='vde' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
     </disk>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml
index c1e8a33ec..252bde338 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-active.xml
@@ -16,7 +16,6 @@
     <emulator>/usr/bin/qemu-system-i686</emulator>
     <disk type='block' device='disk'>
       <source dev='/dev/HostVG/QEMUGuest1'/>
-      <backingStore/>
       <mirror type='block' job='copy' ready='yes'>
         <source dev='/dev/HostVG/QEMUGuest1Copy'/>
       </mirror>
@@ -25,14 +24,12 @@
     </disk>
     <disk type='block' device='cdrom'>
       <source dev='/dev/HostVG/QEMUGuest2'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
     </disk>
     <disk type='file' device='disk'>
       <source file='/tmp/data.img'/>
-      <backingStore/>
       <mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'>
         <format type='qcow2'/>
         <source file='/tmp/copy.img'/>
@@ -42,7 +39,6 @@
     </disk>
     <disk type='file' device='disk'>
       <source file='/tmp/logs.img'/>
-      <backingStore/>
       <mirror type='file' file='/tmp/logcopy.img' format='qcow2' job='copy' ready='abort'>
         <format type='qcow2'/>
         <source file='/tmp/logcopy.img'/>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml
index e390bc02f..f4bd39a58 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror-old.xml
@@ -16,7 +16,6 @@
     <emulator>/usr/bin/qemu-system-i686</emulator>
     <disk type='block' device='disk'>
       <source dev='/dev/HostVG/QEMUGuest1'/>
-      <backingStore/>
       <mirror type='file' file='/dev/HostVG/QEMUGuest1Copy' job='copy' ready='yes'>
         <source file='/dev/HostVG/QEMUGuest1Copy'/>
       </mirror>
@@ -25,14 +24,12 @@
     </disk>
     <disk type='block' device='cdrom'>
       <source dev='/dev/HostVG/QEMUGuest2'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
     </disk>
     <disk type='file' device='disk'>
       <source file='/tmp/data.img'/>
-      <backingStore/>
       <mirror type='file' file='/tmp/copy.img' format='qcow2' job='copy'>
         <format type='qcow2'/>
         <source file='/tmp/copy.img'/>
@@ -42,7 +39,6 @@
     </disk>
     <disk type='file' device='disk'>
       <source file='/tmp/logs.img'/>
-      <backingStore/>
       <target dev='vdb' bus='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
     </disk>
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml
index d37b950cb..91f573db7 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-seclabel-static-labelskip.xml
@@ -18,7 +18,6 @@
       <source dev='/dev/HostVG/QEMUGuest1'>
         <seclabel model='selinux' labelskip='yes'/>
       </source>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
diff --git a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
index 85cff4e8b..b9a8716b2 100644
--- a/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-boot-grub.xml
@@ -17,7 +17,6 @@
     <disk type='block' device='disk'>
       <driver name='phy'/>
       <source dev='/dev/MainVG/GuestVG'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml b/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
index a04496f11..a8f804423 100644
--- a/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-bridge-ipaddr.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <interface type='bridge'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-curmem.xml b/tests/sexpr2xmldata/sexpr2xml-curmem.xml
index 601749e2b..a976986a1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-curmem.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-curmem.xml
@@ -19,7 +19,6 @@
     <disk type='file' device='disk'>
       <driver name='tap' type='raw'/>
       <source file='/xen/rhel5.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <interface type='bridge'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml b/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml
index a3295a056..9f757efa2 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-block-shareable.xml
@@ -16,7 +16,6 @@
     <disk type='file' device='disk'>
       <driver name='tap' type='raw'/>
       <source file='/var/lib/xen/images/rhel5pv.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
       <shareable/>
     </disk>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-block.xml b/tests/sexpr2xmldata/sexpr2xml-disk-block.xml
index 30dee466e..56d6db5a5 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-block.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-block.xml
@@ -18,7 +18,6 @@
     <disk type='block' device='disk'>
       <driver name='phy'/>
       <source dev='/dev/MainVG/GuestVG'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml
index 12b65d6f5..80f6dd205 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-qcow.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='tap' type='qcow'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml
index f7d48f9e5..71e7c40b6 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap-raw.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='tap' type='raw'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml
index 497413c6e..bd244bbc3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-drv-blktap2-raw.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='tap2' type='raw'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-disk-file.xml b/tests/sexpr2xmldata/sexpr2xml-disk-file.xml
index 18b3dbde2..c624fe31c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-disk-file.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-disk-file.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
index e8ae46c8a..5d4976fb3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml
@@ -21,14 +21,12 @@
     <disk type='block' device='disk'>
       <driver name='phy'/>
       <source dev='/iscsi/winxp'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/net/heaped/export/netimage/windows/xp-sp2-vol.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
index 0adac3420..57b60ec78 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
index 4f02e80c3..8266d10e0 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml
@@ -23,14 +23,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
index caa10d9ff..0b360446f 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml
@@ -23,14 +23,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml b/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
index ce6e97a25..c638d8c72 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml
@@ -19,7 +19,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <serial type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml b/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
index 189215ab4..40866d392 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml b/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
index 386726aca..ed53462ab 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
index 9fdc16f17..0fbce74c3 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
index 50dac3bd1..bf2518465 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2-ports.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
index f0c9c4f7b..60e9dd819 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-dev-2nd-port.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
index 127de7d4f..6dfc32f01 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
index 2b4c0c954..274e3c36c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
index 2080a4dfc..fe251cb5f 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
index c51a79af6..258d76c45 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
index 6226a2844..768a4253b 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
index 071645f66..6d76e5752 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp-telnet.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
index 3eda5137d..9b7edd110 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
index 35b6f8462..65c4ffcbb 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml b/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
index fe5bf1108..2c75df14d 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml b/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
index 65ba50603..cb5e9443c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml b/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
index 65ba50603..cb5e9443c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-sound.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml b/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
index f034bc19a..6de380ba0 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml b/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
index ab350c0c0..46628dff4 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml b/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
index e49854f08..f75eac3a7 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-utc.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
index e49854f08..f75eac3a7 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv-v2.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-fv.xml b/tests/sexpr2xmldata/sexpr2xml-fv.xml
index e49854f08..f75eac3a7 100644
--- a/tests/sexpr2xmldata/sexpr2xml-fv.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-fv.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml b/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml
index 33961fc95..b680fd8aa 100644
--- a/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-net-bridged.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <interface type='bridge'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml b/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml
index 66afbfbfd..bd9f68048 100644
--- a/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-net-e1000.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <interface type='bridge'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-net-routed.xml b/tests/sexpr2xmldata/sexpr2xml-net-routed.xml
index 9544954c4..f3cd1a7e7 100644
--- a/tests/sexpr2xmldata/sexpr2xml-net-routed.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-net-routed.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <interface type='ethernet'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml b/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
index 17018952e..8a0c28b49 100644
--- a/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml
@@ -23,12 +23,10 @@
     <disk type='block' device='disk'>
       <driver name='phy'/>
       <source dev='/dev/sda8'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml b/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml
index 11bd4c60b..ea8e5a5fa 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pci-devs.xml
@@ -18,7 +18,6 @@
     <disk type='block' device='disk'>
       <driver name='phy'/>
       <source dev='/dev/MainVG/GuestVG'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml
index fafffffb0..f830742fc 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader-cmdline.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml
index 96a50da09..131e04d50 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-bootloader.xml
@@ -17,7 +17,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml b/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml
index 6dba41613..c1d702d9a 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-localtime.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
index 971323493..968697802 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml
index 72fec2559..a7553a520 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new-vncdisplay.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml
index 0fd7a889d..6172dc336 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-new.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
index 06e7280bc..8062082c1 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv-vfb-type-crash.xml
@@ -17,7 +17,6 @@
     <disk type='block' device='disk'>
       <driver name='phy'/>
       <source dev='/dev/vg_dom0test/test2vm'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <interface type='bridge'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-pv.xml b/tests/sexpr2xmldata/sexpr2xml-pv.xml
index 18b3dbde2..c624fe31c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-pv.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-pv.xml
@@ -18,7 +18,6 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/some.img'/>
-      <backingStore/>
       <target dev='xvda' bus='xen'/>
     </disk>
     <console type='pty'>
diff --git a/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml b/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml
index bfcd7c367..3b04ae23c 100644
--- a/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml
+++ b/tests/sexpr2xmldata/sexpr2xml-vif-rate.xml
@@ -21,14 +21,12 @@
     <disk type='file' device='disk'>
       <driver name='file'/>
       <source file='/root/foo.img'/>
-      <backingStore/>
       <target dev='hda' bus='ide'/>
       <address type='drive' controller='0' bus='0' target='0' unit='0'/>
     </disk>
     <disk type='file' device='cdrom'>
       <driver name='file'/>
       <source file='/root/boot.iso'/>
-      <backingStore/>
       <target dev='hdc' bus='ide'/>
       <readonly/>
       <address type='drive' controller='0' bus='1' target='0' unit='0'/>
-- 
2.14.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 9/9] Terminate backing chains explicitly
Posted by Eric Blake 7 years, 7 months ago
On 10/12/2017 02:07 PM, Peter Krempa wrote:
> Express a properly terminated backing chain by putting a
> virStorageSource of type VIR_STORAGE_TYPE_NONE in the chain. The newly
> used helpers simplify this greatly.
> 
> The change fixes a bug as formatting an incomplete backing chain and
> parsing it back would end up in expressing a terminated chain since
> src->backingStoreRaw was not populated. By relying on the terminator
> object this can be now processed appropriately.


> +++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml
> @@ -22,7 +22,6 @@
>      <disk type='file' device='disk'>
>        <driver name='qemu' type='raw' cache='none'/>
>        <source file='/dev/null'/>
> -      <backingStore/>

This gets rid of a lot of terminator markers in the test XML; the code
looks like we will still generate a terminator marker when we know the
full chain, and that lack of a terminator marker is not fatal, but
merely means that we haven't specified a full chain.  It feels like a
lot of fallout, but the code with the special terminator does look
nicer, so I can live with the testsuite churn that results.

Reviewed-by: Eric Blake <eblake@redhat.com>

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 9/9] Terminate backing chains explicitly
Posted by Peter Krempa 7 years, 7 months ago
On Thu, Oct 12, 2017 at 15:34:28 -0500, Eric Blake wrote:
> On 10/12/2017 02:07 PM, Peter Krempa wrote:
> > Express a properly terminated backing chain by putting a
> > virStorageSource of type VIR_STORAGE_TYPE_NONE in the chain. The newly
> > used helpers simplify this greatly.
> > 
> > The change fixes a bug as formatting an incomplete backing chain and
> > parsing it back would end up in expressing a terminated chain since
> > src->backingStoreRaw was not populated. By relying on the terminator
> > object this can be now processed appropriately.
> 
> 
> > +++ b/tests/qemuhotplugtestdomains/qemuhotplug-base-ccw-live+ccw-virtio.xml
> > @@ -22,7 +22,6 @@
> >      <disk type='file' device='disk'>
> >        <driver name='qemu' type='raw' cache='none'/>
> >        <source file='/dev/null'/>
> > -      <backingStore/>
> 
> This gets rid of a lot of terminator markers in the test XML; the code
> looks like we will still generate a terminator marker when we know the
> full chain, and that lack of a terminator marker is not fatal, but
> merely means that we haven't specified a full chain.  It feels like a
> lot of fallout, but the code with the special terminator does look
> nicer, so I can live with the testsuite churn that results.

Actually this was only a quirk of the tests since they parsed backing
chains from XML rather than detecting them from the disk.

When detecting them from disk storage we fill src->backingStoreRaw which
was used to determine when to fill the terminator. Unfortunately the
terminator is filled in when the variable is NULL, which is always in
tests but not always in real use cases.
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list