diff options
author | Alberto Garcia <berto@igalia.com> | 2015-10-26 14:27:16 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2015-11-11 16:25:47 +0100 |
commit | 43de7e2de07093e47c7f25386aff280875dc3c62 (patch) | |
tree | 28759e468f75d58f1d64e4c6ceeb5437b4f7d687 /qapi | |
parent | 3e8c2e57056614933fc5eb022e1d6d0f28071b44 (diff) | |
download | qemu-43de7e2de07093e47c7f25386aff280875dc3c62.zip qemu-43de7e2de07093e47c7f25386aff280875dc3c62.tar.gz qemu-43de7e2de07093e47c7f25386aff280875dc3c62.tar.bz2 |
block: add a 'blockdev-snapshot' QMP command
One of the limitations of the 'blockdev-snapshot-sync' command is that
it does not allow passing BlockdevOptions to the newly created
snapshots, so they are always opened using the default values.
Extending the command to allow passing options is not a practical
solution because there is overlap between those options and some of
the existing parameters of the command.
This patch introduces a new 'blockdev-snapshot' command with a simpler
interface: it just takes two references to existing block devices that
will be used as the source and target for the snapshot.
Since the main difference between the two commands is that one of them
creates and opens the target image, while the other uses an already
opened one, the bulk of the implementation is shared.
Signed-off-by: Alberto Garcia <berto@igalia.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'qapi')
-rw-r--r-- | qapi/block-core.json | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/qapi/block-core.json b/qapi/block-core.json index f592adc..083d2cd 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -705,6 +705,21 @@ '*format': 'str', '*mode': 'NewImageMode' } } ## +# @BlockdevSnapshot +# +# @node: device or node name that will have a snapshot created. +# +# @overlay: reference to the existing block device that will become +# the overlay of @node, as part of creating the snapshot. +# It must not have a current backing file (this can be +# achieved by passing "backing": "" to blockdev-add). +# +# Since 2.5 +## +{ 'struct': 'BlockdevSnapshot', + 'data': { 'node': 'str', 'overlay': 'str' } } + +## # @DriveBackup # # @device: the name of the device which should be copied. @@ -800,6 +815,19 @@ { 'command': 'blockdev-snapshot-sync', 'data': 'BlockdevSnapshotSync' } + +## +# @blockdev-snapshot +# +# Generates a snapshot of a block device. +# +# For the arguments, see the documentation of BlockdevSnapshot. +# +# Since 2.5 +## +{ 'command': 'blockdev-snapshot', + 'data': 'BlockdevSnapshot' } + ## # @change-backing-file # |