We require that 'auto-read-only' is dynamic for posix-file backeds this
prevents problems with libvirt's usage of sVirt where we don't grant
qemu permissions to write backing chain until it's needed.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_capabilities.c | 3 +
.../caps_4.1.0.x86_64.xml | 1 +
.../controller-virtio-scsi.x86_64-latest.args | 35 +++--
.../disk-aio.x86_64-latest.args | 19 ++-
...-backing-chains-noindex.x86_64-latest.args | 145 +++---
.../disk-cache.x86_64-latest.args | 50 --
.../disk-cdrom-network.x86_64-latest.args | 32 ++--
.../disk-cdrom-tray.x86_64-latest.args| 24 ++-
.../disk-cdrom.x86_64-latest.args | 21 +--
.../disk-copy_on_read.x86_64-latest.args | 19 ++-
.../disk-detect-zeroes.x86_64-latest.args | 17 +-
.../disk-error-policy.x86_64-latest.args | 30 ++--
.../disk-floppy-q35-2_11.x86_64-latest.args | 14 +-
.../disk-floppy-q35-2_9.x86_64-latest.args| 14 +-
.../disk-floppy.x86_64-latest.args| 21 ++-
.../disk-network-gluster.x86_64-latest.args | 32 ++--
.../disk-network-iscsi.x86_64-latest.args | 58 ---
.../disk-network-nbd.x86_64-latest.args | 41 +++--
.../disk-network-rbd.x86_64-latest.args | 67 +---
.../disk-network-sheepdog.x86_64-latest.args | 16 +-
...isk-network-source-auth.x86_64-latest.args | 30 ++--
.../disk-network-tlsx509.x86_64-latest.args | 64 +---
.../disk-readonly-disk.x86_64-latest.args | 14 +-
.../disk-scsi-device-auto.x86_64-latest.args | 14 +-
.../disk-scsi.x86_64-latest.args | 35 +++--
.../disk-shared.x86_64-latest.args| 36 +++--
...irtio-scsi-reservations.x86_64-latest.args | 20 ++-
.../floppy-drive-fat.x86_64-latest.args | 7 +-
...egl-headless-rendernode.x86_64-latest.args | 7 +-
.../graphics-egl-headless.x86_64-latest.args | 7 +-
...threads-virtio-scsi-pci.x86_64-latest.args | 25 ++-
...y-hotplug-nvdimm-access.x86_64-latest.args | 7 +-
...ry-hotplug-nvdimm-align.x86_64-latest.args | 7 +-
...ry-hotplug-nvdimm-label.x86_64-latest.args | 7 +-
...ory-hotplug-nvdimm-pmem.x86_64-latest.args | 7 +-
...hotplug-nvdimm-readonly.x86_64-latest.args | 7 +-
.../memory-hotplug-nvdimm.x86_64-latest.args | 7 +-
...eo-bochs-display-device.x86_64-latest.args | 10 +-
...virtio-non-transitional.x86_64-latest.args | 7 +-
.../virtio-transitional.x86_64-latest.args| 7 +-
.../x86_64-pc-graphics.x86_64-latest.args | 8 +-
.../x86_64-pc-headless.x86_64-latest.args | 8 +-
.../x86_64-q35-graphics.x86_64-latest.args| 8 +-
.../x86_64-q35-headless.x86_64-latest.args| 8 +-
44 files changed, 710 insertions(+), 306 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 83b1a12d14..0d5b8c3e4b 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -4445,6 +4445,9 @@ virQEMUCapsInitProcessCaps(virQEMUCapsPtr qemuCaps)
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_UNAVAILABLE_FEATURES))
virQEMUCapsSet(qemuCaps, QEMU_CAPS_CANONICAL_CPU_FEATURES);
+if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCK_FILE_AUTO_READONLY_DYNAMIC) &&
+virQEMUCapsGet(qemuCaps, QEMU_CAPS_SCSI_DISK_DEVICE_ID))
+virQEMUCapsSet(qemuCaps, QEMU_CAPS_BLOCKDEV);
}
diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
index fbde4f3a5d..c4816d1f7d 100644
--- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
@@ -191,6 +191,7 @@
+
diff --git a/tests/qemuxml2argvdata/controller-virtio-scsi.x86_64-latest.args
b/tests/qemuxml2argvdata/controller-virtio-scsi.x86_64-latest.args
index 32b781ced9..1647cfdd97 100644
--- a/tests/qemuxml2argvdata/controller-virtio-scsi.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/controller-virtio-scsi.x86_64-latest.args
@@ -32,21 +32,36 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
-device virtio-scsi-pci,id=scsi2,cmd_per_lun=50,bus=pci.0,addr=0x4 \
-device virtio-scsi-pci,id=scsi3,max_sectors=512,bus=pci.0,addr=0x5 \
-device virtio-scsi-pci,id=scsi4,ioeventfd=on,bus=pci.0,addr=0x6 \
--drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-scsi0-0-0-0 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-5-storage","auto-read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\
+"file":"libvirt-5-storage"}' \
-device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
-device_id=drive-scsi0-0-0-0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=1
\
--drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-scsi1-0-0-0 \
+device_id=drive-scsi0-0-0-0,drive=libvirt-5-format,id=scsi0-0-0-0,bootindex=1 \
+-blockdev