mirror of https://github.com/xemu-project/xemu.git
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);
|
&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 */
|
/* New and old BlockDriverState structs for group snapshots */
|
||||||
|
|
||||||
|
|
|
@ -1804,6 +1804,26 @@
|
||||||
{ 'command': 'blockdev-snapshot-sync',
|
{ 'command': 'blockdev-snapshot-sync',
|
||||||
'data': 'BlockdevSnapshot' }
|
'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:
|
# @human-monitor-command:
|
||||||
#
|
#
|
||||||
|
|
|
@ -1095,6 +1095,35 @@ Example:
|
||||||
"format": "qcow2" } }
|
"format": "qcow2" } }
|
||||||
<- { "return": {} }
|
<- { "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
|
EQMP
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue