@@ -655,8 +655,10 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
{
Error *err = NULL;
SnapshotInfoList *list;
+ const char *device = qdict_get_try_str(qdict, "device");
+ bool has_device = device ? true : false;
- list = qmp_query_snapshots(false, NULL, &err);
+ list = qmp_query_snapshots(has_device, device, &err);
if (error_is_set(&err)) {
hmp_handle_error(mon, &err);
return;
@@ -667,6 +669,9 @@ void hmp_info_snapshots(Monitor *mon, const QDict *qdict)
return;
}
+ if (has_device) {
+ monitor_printf(mon, "Device '%s':\n", device);
+ }
monitor_dump_snapshotinfolist(mon, list);
qapi_free_SnapshotInfoList(list);
}
@@ -2591,9 +2591,9 @@ static mon_cmd_t info_cmds[] = {
},
{
.name = "snapshots",
- .args_type = "",
- .params = "",
- .help = "show the currently saved VM snapshots",
+ .args_type = "device:B?",
+ .params = "[device]",
+ .help = "show snapshots of whole vm or a single device",
.mhandler.cmd = hmp_info_snapshots,
},
{
This patch added the support of showing internal snapshots on a single block device in hmp layer, by simply change parameter in calling of qmp funtion. Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com> --- hmp.c | 7 ++++++- monitor.c | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-)