Markus Armbruster <arm...@redhat.com> wrote: > "Denis V. Lunev" <d...@openvz.org> writes: > >> Signed-off-by: Denis V. Lunev <d...@openvz.org> >> CC: Juan Quintela <quint...@redhat.com> >> CC: Amit Shah <amit.s...@redhat.com> >> CC: Markus Armbruster <arm...@redhat.com> >> CC: Eric Blake <ebl...@redhat.com> >> --- >> migration/savevm.c | 27 ++++++++++++++++++--------- >> qapi-schema.json | 13 +++++++++++++ >> qmp-commands.hx | 23 +++++++++++++++++++++++ >> 3 files changed, 54 insertions(+), 9 deletions(-) >> >> diff --git a/migration/savevm.c b/migration/savevm.c >> index 565b10a..90b6850 100644 >> --- a/migration/savevm.c >> +++ b/migration/savevm.c >> @@ -2115,17 +2115,26 @@ int load_vmstate(const char *name) >> return 0; >> } >> >> -void hmp_delvm(Monitor *mon, const QDict *qdict) >> +void qmp_delvm(const char *name, Error **errp) >> { >> BlockDriverState *bs; >> - Error *err; >> - const char *name = qdict_get_str(qdict, "name"); >> - >> - if (bdrv_all_delete_snapshot(name, &bs, &err) < 0) { >> - monitor_printf(mon, >> - "Error while deleting snapshot on device '%s': %s\n", >> - bdrv_get_device_name(bs), error_get_pretty(err)); >> - error_free(err); >> + Error *local_err = NULL; >> + >> + if (bdrv_all_delete_snapshot(name, &bs, errp) < 0) { >> + error_setg(errp, "Error while deleting snapshot on device '%s': %s", >> + bdrv_get_device_name(bs), error_get_pretty(local_err)); >> + error_free(local_err); >> + } >> +} >> + >> +void hmp_delvm(Monitor *mon, const QDict *qdict) >> +{ >> + Error *local_err = NULL; >> + qmp_delvm(qdict_get_str(qdict, "name"), &local_err); >> + >> + if (local_err != NULL) { >> + monitor_printf(mon, "%s\n", error_get_pretty(local_err)); >> + error_free(local_err); > > error_report_err(), please. > >> } >> } > > Juan, Amit, in case you'd prefer to move out the parts that implement > HMP on top of QMP: they can go into hmp.c as long as they're as simple > as this one.
Perfect for me. Thanks, Juan.