mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 01:43:39 +00:00
qmp: add interface blockdev-snapshot-internal-sync
Snapshot ID can't be specified in this interface. Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
bbe860104f
commit
f323bc9e8b
13
blockdev.c
13
blockdev.c
|
@ -858,6 +858,19 @@ void qmp_blockdev_snapshot_sync(const char *device, const char *snapshot_file,
|
|||
&snapshot, errp);
|
||||
}
|
||||
|
||||
void qmp_blockdev_snapshot_internal_sync(const char *device,
|
||||
const char *name,
|
||||
Error **errp)
|
||||
{
|
||||
BlockdevSnapshotInternal snapshot = {
|
||||
.device = (char *) device,
|
||||
.name = (char *) name
|
||||
};
|
||||
|
||||
blockdev_do_action(TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_INTERNAL_SYNC,
|
||||
&snapshot, errp);
|
||||
}
|
||||
|
||||
|
||||
/* New and old BlockDriverState structs for group snapshots */
|
||||
|
||||
|
|
|
@ -1804,6 +1804,26 @@
|
|||
{ 'command': 'blockdev-snapshot-sync',
|
||||
'data': 'BlockdevSnapshot' }
|
||||
|
||||
##
|
||||
# @blockdev-snapshot-internal-sync
|
||||
#
|
||||
# Synchronously take an internal snapshot of a block device, when the format
|
||||
# of the image used supports it.
|
||||
#
|
||||
# For the arguments, see the documentation of BlockdevSnapshotInternal.
|
||||
#
|
||||
# Returns: nothing on success
|
||||
# If @device is not a valid block device, DeviceNotFound
|
||||
# If any snapshot matching @name exists, or @name is empty,
|
||||
# GenericError
|
||||
# If the format of the image used does not support it,
|
||||
# BlockFormatFeatureNotSupported
|
||||
#
|
||||
# Since 1.7
|
||||
##
|
||||
{ 'command': 'blockdev-snapshot-internal-sync',
|
||||
'data': 'BlockdevSnapshotInternal' }
|
||||
|
||||
##
|
||||
# @human-monitor-command:
|
||||
#
|
||||
|
|
|
@ -1095,6 +1095,35 @@ Example:
|
|||
"format": "qcow2" } }
|
||||
<- { "return": {} }
|
||||
|
||||
EQMP
|
||||
|
||||
{
|
||||
.name = "blockdev-snapshot-internal-sync",
|
||||
.args_type = "device:B,name:s",
|
||||
.mhandler.cmd_new = qmp_marshal_input_blockdev_snapshot_internal_sync,
|
||||
},
|
||||
|
||||
SQMP
|
||||
blockdev-snapshot-internal-sync
|
||||
-------------------------------
|
||||
|
||||
Synchronously take an internal snapshot of a block device when the format of
|
||||
image used supports it. If the name is an empty string, or a snapshot with
|
||||
name already exists, the operation will fail.
|
||||
|
||||
Arguments:
|
||||
|
||||
- "device": device name to snapshot (json-string)
|
||||
- "name": name of the new snapshot (json-string)
|
||||
|
||||
Example:
|
||||
|
||||
-> { "execute": "blockdev-snapshot-internal-sync",
|
||||
"arguments": { "device": "ide-hd0",
|
||||
"name": "snapshot0" }
|
||||
}
|
||||
<- { "return": {} }
|
||||
|
||||
EQMP
|
||||
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue