[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 24/35] qapi: publish copy-before-write filter
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v5 24/35] qapi: publish copy-before-write filter |
Date: |
Thu, 10 Jun 2021 14:26:07 +0300 |
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
---
qapi/block-core.json | 30 ++++++++++++++++++++++++++----
1 file changed, 26 insertions(+), 4 deletions(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 2ea294129e..6c1ce86235 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2808,15 +2808,17 @@
# @blklogwrites: Since 3.0
# @blkreplay: Since 4.2
# @compress: Since 5.0
+# @copy-before-write: Since 6.1
#
# Since: 2.9
##
{ 'enum': 'BlockdevDriver',
'data': [ 'blkdebug', 'blklogwrites', 'blkreplay', 'blkverify', 'bochs',
- 'cloop', 'compress', 'copy-on-read', 'dmg', 'file', 'ftp', 'ftps',
- 'gluster', 'host_cdrom', 'host_device', 'http', 'https', 'iscsi',
- 'luks', 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallels',
- 'preallocate', 'qcow', 'qcow2', 'qed', 'quorum', 'raw', 'rbd',
+ 'cloop', 'compress', 'copy-before-write', 'copy-on-read', 'dmg',
+ 'file', 'ftp', 'ftps', 'gluster', 'host_cdrom', 'host_device',
+ 'http', 'https', 'iscsi', 'luks', 'nbd', 'nfs', 'null-aio',
+ 'null-co', 'nvme', 'parallels', 'preallocate', 'qcow', 'qcow2',
+ 'qed', 'quorum', 'raw', 'rbd',
{ 'name': 'replication', 'if': 'defined(CONFIG_REPLICATION)' },
'ssh', 'throttle', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat' ] }
@@ -3937,6 +3939,25 @@
'base': 'BlockdevOptionsGenericFormat',
'data': { '*bottom': 'str' } }
+##
+# @BlockdevOptionsCbw:
+#
+# Driver specific block device options for the copy-before-write driver,
+# which does so called copy-before-write operations: when data is
+# written to the filter, the filter firstly reads corresponding blocks
+# from its file child and copies them to @target child. After successful
+# copying the write request is propagated to file child. If copying
+# failed, the original write request is failed too and no data is written
+# to file child.
+#
+# @target: The target for copy-before-write operations.
+#
+# Since: 6.1
+##
+{ 'struct': 'BlockdevOptionsCbw',
+ 'base': 'BlockdevOptionsGenericFormat',
+ 'data': { 'target': 'BlockdevRef' } }
+
##
# @BlockdevOptions:
#
@@ -3989,6 +4010,7 @@
'bochs': 'BlockdevOptionsGenericFormat',
'cloop': 'BlockdevOptionsGenericFormat',
'compress': 'BlockdevOptionsGenericFormat',
+ 'copy-before-write':'BlockdevOptionsCbw',
'copy-on-read':'BlockdevOptionsCor',
'dmg': 'BlockdevOptionsGenericFormat',
'file': 'BlockdevOptionsFile',
--
2.29.2
- [PATCH v5 05/35] qdev-properties: PropertyInfo: add realized_set_allowed field, (continued)
- [PATCH v5 05/35] qdev-properties: PropertyInfo: add realized_set_allowed field, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 07/35] block: rename backup-top to copy-before-write, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 11/35] block/backup: move cluster size calculation to block-copy, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 08/35] block-copy: always set BDRV_REQ_SERIALISING flag, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 12/35] block/copy-before-write: relax permission requirements when no parents, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 14/35] block/copy-before-write: use file child instead of backing, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 09/35] block/block-copy: introduce block_copy_set_copy_opts(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 13/35] block/copy-before-write: drop extra bdrv_unref on failure path, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 15/35] block/copy-before-write: bdrv_cbw_append(): replace child at last, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 16/35] block/copy-before-write: introduce cbw_init(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 24/35] qapi: publish copy-before-write filter,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v5 17/35] block/copy-before-write: cbw_init(): rename variables, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 18/35] block/copy-before-write: cbw_init(): use file child after attaching, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 26/35] python/qemu/machine: QEMUMachine: improve qmp() method, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 19/35] block/copy-before-write: bdrv_cbw_append(): drop unused compress arg, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 20/35] block/copy-before-write: cbw_init(): use options, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 22/35] block/block-copy: make setting progress optional, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 25/35] python/qemu/machine.py: refactor _qemu_args(), Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 21/35] block/copy-before-write: initialize block-copy bitmap, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 27/35] iotests.py: VM: add own __enter__ method, Vladimir Sementsov-Ogievskiy, 2021/06/10
- [PATCH v5 23/35] block/copy-before-write: make public block driver, Vladimir Sementsov-Ogievskiy, 2021/06/10