]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: caps: Add capability for 'share-rw' disk option
authorPeter Krempa <pkrempa@redhat.com>
Wed, 15 Nov 2017 14:02:58 +0000 (15:02 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Thu, 23 Nov 2017 17:26:48 +0000 (18:26 +0100)
'share-rw' for the disk device configures qemu to allow concurrent
access to the backing storage.

The capability is checked in various supported disk frontend buses since
it does not make sense to partially backport it.

src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_2.10.0-gicv2.aarch64.xml
tests/qemucapabilitiesdata/caps_2.10.0-gicv3.aarch64.xml
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml

index 1c133d761778ab514bf2decaca89e5e8d4df2381..3adea664f7a6b9e1b35fc0f9a819d64ce850ba9b 100644 (file)
@@ -450,6 +450,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               /* 275 */
               "sclplmconsole",
               "numa.dist",
+              "disk-share-rw",
     );
 
 
@@ -1694,6 +1695,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
     { "scsi", QEMU_CAPS_VIRTIO_BLK_SCSI },
     { "logical_block_size", QEMU_CAPS_BLOCKIO },
     { "num-queues", QEMU_CAPS_VIRTIO_BLK_NUM_QUEUES },
+    { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioNet[] = {
@@ -1724,10 +1726,12 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVfioPCI[] = {
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsSCSIDisk[] = {
     { "channel", QEMU_CAPS_SCSI_DISK_CHANNEL },
     { "wwn", QEMU_CAPS_SCSI_DISK_WWN },
+    { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsIDEDrive[] = {
     { "wwn", QEMU_CAPS_IDE_DRIVE_WWN },
+    { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsPiix4PM[] = {
@@ -1758,6 +1762,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsQ35PCIHost[] = {
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsUSBStorage[] = {
     { "removable", QEMU_CAPS_USB_STORAGE_REMOVABLE },
+    { "share-rw", QEMU_CAPS_DISK_SHARE_RW },
 };
 
 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsKVMPit[] = {
index cb7cdd7f58f7ced0dac89fc0e951af9109c4c358..b29d6f14d67b53bcd875f92e4296fd06fdbf94ce 100644 (file)
@@ -436,6 +436,7 @@ typedef enum {
     /* 275 */
     QEMU_CAPS_DEVICE_SCLPLMCONSOLE, /* -device sclplmconsole */
     QEMU_CAPS_NUMA_DIST, /* -numa dist */
+    QEMU_CAPS_DISK_SHARE_RW, /* share-rw=on for concurrent disk access */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index 06b90875d4511355a9e564c820f0af98df23a88a..78fa7562a1f9920fcadfdc8ed4d4ac13d6658cdf 100644 (file)
   <flag name='vxhs'/>
   <flag name='virtio-blk.num-queues'/>
   <flag name='numa.dist'/>
+  <flag name='disk-share-rw'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <package> (v2.10.0)</package>
index 389390fe4ca224ba6cf987bd98b7c9af97673ebc..8f2dba6232ef43c97431f623ac180f1676fbdab2 100644 (file)
   <flag name='vxhs'/>
   <flag name='virtio-blk.num-queues'/>
   <flag name='numa.dist'/>
+  <flag name='disk-share-rw'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <package> (v2.10.0)</package>
index 9e71bd52531a48af68f08e13c68a760476242476..cde5ea0e33e5a7ff71c3bff8fc704e122eddcc3e 100644 (file)
   <flag name='machine.pseries.resize-hpt'/>
   <flag name='spapr-vty'/>
   <flag name='numa.dist'/>
+  <flag name='disk-share-rw'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <package> (v2.10.0)</package>
index 6d9024455c33c9971c5f17bebc30bf82bcbd23f9..00fe1cffa7cfdcf7e155c60e366ce8c4dd99f134 100644 (file)
   <flag name='virtio-blk.num-queues'/>
   <flag name='sclplmconsole'/>
   <flag name='numa.dist'/>
+  <flag name='disk-share-rw'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <package></package>
index 50251edc0c4e18c2a3c8082d7d919fd2c1f21e63..dd04855be34b64c18ce3ef1229f87d1fe1fc22a1 100644 (file)
   <flag name='vxhs'/>
   <flag name='virtio-blk.num-queues'/>
   <flag name='numa.dist'/>
+  <flag name='disk-share-rw'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <package> (v2.10.0)</package>
index e1b0074c9fcef30709101d5904916d441c0841b6..3b70b1a4076fd8d2d47e03cbdd49933b64684872 100644 (file)
   <flag name='virtio-gpu.max_outputs'/>
   <flag name='virtio-blk.num-queues'/>
   <flag name='spapr-vty'/>
+  <flag name='disk-share-rw'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <package> (v2.9.0)</package>
index 6f965997ec15a78f9b52e74f202b0833ed93e2b1..5c4a02c8b158f37cc76cdb81da702a7cf1f5cdcb 100644 (file)
   <flag name='virtio-gpu.max_outputs'/>
   <flag name='virtio-blk.num-queues'/>
   <flag name='sclplmconsole'/>
+  <flag name='disk-share-rw'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <package></package>
index 05f9dc03086184b23d1c89f869bab73e499d34cb..0ea9a2fce394a7e8bd4132b53a2e491d0d27dd32 100644 (file)
   <flag name='chardev-reconnect'/>
   <flag name='virtio-gpu.max_outputs'/>
   <flag name='virtio-blk.num-queues'/>
+  <flag name='disk-share-rw'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <package> (v2.9.0)</package>