Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> writes: > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > Reviewed-by: Max Reitz <mre...@redhat.com> > --- > qapi/block-core.json | 25 +++++++++++++++++++++++-- > 1 file changed, 23 insertions(+), 2 deletions(-) > > diff --git a/qapi/block-core.json b/qapi/block-core.json > index 675d8265eb..59d3e5e42d 100644 > --- a/qapi/block-core.json > +++ b/qapi/block-core.json > @@ -2825,13 +2825,14 @@ > # @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', > + 'cloop', 'compress', 'copy-before-write', 'copy-on-read', 'dmg', > + 'file', 'ftp', 'ftps', 'gluster', > {'name': 'host_cdrom', 'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' }, > {'name': 'host_device', 'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' > }, > 'http', 'https', 'iscsi', > @@ -4049,6 +4050,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
s/firstly/first/ > +# from its file child and copies them to @target child. After successful s/successful/successfully/ > +# copying the write request is propagated to file child. If copying Comma after copying, I think. > +# failed, the original write request is failed too and no data is written s/failed,/fails,/ > +# to file child. > +# > +# @target: The target for copy-before-write operations. > +# > +# Since: 6.1 > +## > +{ 'struct': 'BlockdevOptionsCbw', > + 'base': 'BlockdevOptionsGenericFormat', > + 'data': { 'target': 'BlockdevRef' } } > + > ## > # @BlockdevOptions: > # > @@ -4101,6 +4121,7 @@ > 'bochs': 'BlockdevOptionsGenericFormat', > 'cloop': 'BlockdevOptionsGenericFormat', > 'compress': 'BlockdevOptionsGenericFormat', > + 'copy-before-write':'BlockdevOptionsCbw', > 'copy-on-read':'BlockdevOptionsCor', > 'dmg': 'BlockdevOptionsGenericFormat', > 'file': 'BlockdevOptionsFile', With the doc phrasing tweaks duly considered: Acked-by: Markus Armbruster <arm...@redhat.com>