]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: domain: Don't treat unknown storage type as not having backing chain
authorPeter Krempa <pkrempa@redhat.com>
Thu, 5 May 2016 13:25:52 +0000 (15:25 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 9 May 2016 11:40:17 +0000 (13:40 +0200)
qemuDomainCheckDiskPresence has short-circuit code to skip the
determination of the disk backing chain for storage formats that can't
have backing volumes. The code treats VIR_STORAGE_FILE_NONE as not
having backing chain and skips the call to qemuDomainDetermineDiskChain.

This is wrong as qemuDomainDetermineDiskChain is responsible for storage
format detection and has logic to determine the default type if format
detection is disabled.

This allows to storage passed via <disk type="volume"> to circumvent the
enforcement to have correct storage format or that we shall default to
format='raw', since we don't set the default type via the post parse
callback for "volume" backed disks as the translation code could come up
with a better guess.

This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1328003

src/qemu/qemu_domain.c

index 7540578dfbf954e477b06c845a00e65d72fc0b12..93f0a01b4e40e360cb80d7ee76ccd2aaa2c8e697 100644 (file)
@@ -3817,7 +3817,7 @@ qemuDomainCheckDiskPresence(virQEMUDriverPtr driver,
          * without backing support, the fact that the file exists is
          * more than enough */
         if (virStorageSourceIsLocalStorage(disk->src) &&
-            format >= VIR_STORAGE_FILE_NONE &&
+            format > VIR_STORAGE_FILE_NONE &&
             format < VIR_STORAGE_FILE_BACKING &&
             virFileExists(virDomainDiskGetSource(disk)))
             continue;