Introduction of the disk image locking in qemu created a regression where disk shared access with <shareable/> would not work. Since the disk locking is a desired feature, allow libvirt to configure qemu in such way that <shareable/> disks are exempt from write locks. First few patches refactor some stuff so that it's less ugly. This series also mandates that sharing is used only with 'raw' disks since other formats could corrupt metadata. Peter Krempa (11): qemu: Move snapshot disk validation functions into one qemu: domain: Despaghetify qemuDomainDeviceDefValidate qemu: domain: Move hostdev validation into separate function qemu: domain: Move video device validation into separate function qemu: domain: Refactor domain device validation function qemu: block: Add function to check if storage source allows concurrent access qemu: domain: Reject shared disk access if backing format does not support it qemu: snapshot: Disallow snapshot of unsupported shared disks qemu: Disallow pivot of shared disks to unsupported storage qemu: caps: Add capability for 'share-rw' disk option qemu: command: Mark <shared/> disks as such in qemu src/qemu/qemu_block.c | 15 ++ src/qemu/qemu_block.h | 3 + src/qemu/qemu_capabilities.c | 2 + src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_command.c | 4 + src/qemu/qemu_domain.c | 291 +++++++++++++-------- src/qemu/qemu_driver.c | 121 +++++---- .../caps_2.10.0-gicv2.aarch64.xml | 1 + .../caps_2.10.0-gicv3.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 + .../qemuxml2argv-disk-drive-shared-locking.args | 28 ++ .../qemuxml2argv-disk-drive-shared-locking.xml | 36 +++ .../qemuxml2argv-disk-drive-shared-qcow.xml | 28 ++ .../qemuxml2argv-disk-drive-shared.args | 2 +- .../qemuxml2argv-disk-drive-shared.xml | 2 +- tests/qemuxml2argvtest.c | 3 + 19 files changed, 378 insertions(+), 164 deletions(-) create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared-locking.args create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared-locking.xml create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared-qcow.xml -- 2.14.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list