qemu: domain: Allow 'VIR_STORAGE_TYPE_VOLUME' disks with 'fat' format

The storage volume may in fact convert into a directory when starting
the VM so that it may be actually possible to use it.

This is a regression caused by c9b27af32d as moving the check to
validation time without adjustment causes problems as the volumes are
not translated yet.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2019-06-25 10:36:06 +02:00
parent 76e3de37bf
commit 99917ade0a
4 changed files with 21 additions and 1 deletions

View File

@ -5078,6 +5078,7 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src,
}
if (src->format == VIR_STORAGE_FILE_FAT &&
actualType != VIR_STORAGE_TYPE_VOLUME &&
actualType != VIR_STORAGE_TYPE_DIR) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("storage format 'fat' is supported only with 'dir' "

View File

@ -32,4 +32,8 @@ readonly=on \
-device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
-drive file=/tmp/idedisk.img,format=raw,if=none,id=drive-ide0-0-2 \
-device ide-hd,bus=ide.0,unit=2,drive=drive-ide0-0-2,id=ide0-0-2,bootindex=1 \
-drive file=fat:/some/dir/device/vol1,if=none,id=drive-virtio-disk0,\
readonly=on \
-device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\
id=virtio-disk0 \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3

View File

@ -37,9 +37,17 @@
<target dev='hdd' bus='ide'/>
<address type='drive' controller='0' bus='0' target='0' unit='2'/>
</disk>
<disk type='volume' device='disk'>
<driver name='qemu' type='fat'/>
<source pool='pool-disk' volume='dir+vol1'/>
<target dev='vda' bus='virtio'/>
<readonly/>
</disk>
<controller type='usb' index='0'/>
<controller type='ide' index='0'/>
<controller type='pci' index='0' model='pci-root'/>
<memballoon model='virtio'/>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</memballoon>
</devices>
</domain>

View File

@ -37,6 +37,13 @@
<target dev='hdd' bus='ide'/>
<address type='drive' controller='0' bus='0' target='0' unit='2'/>
</disk>
<disk type='volume' device='disk'>
<driver name='qemu' type='fat'/>
<source pool='pool-disk' volume='dir+vol1'/>
<target dev='vda' bus='virtio'/>
<readonly/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<controller type='usb' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>