Commit 0b461605 authored by Denis V. Lunev's avatar Denis V. Lunev Committed by Juan Quintela
Browse files

migration: reorder processing in hmp_savevm



State deletion can be performed on running VM which reduces VM downtime
This approach looks a bit more natural.

Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
Reviewed-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: default avatarFam Zheng <famz@redhat.com>
Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
Tested-by: default avatarGreg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
parent a9085f9b
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -1935,6 +1935,15 @@ void hmp_savevm(Monitor *mon, const QDict *qdict)
        return;
    }

    /* Delete old snapshots of the same name */
    if (name && bdrv_all_delete_snapshot(name, &bs1, &local_err) < 0) {
        monitor_printf(mon,
                       "Error while deleting snapshot on device '%s': %s\n",
                       bdrv_get_device_name(bs1), error_get_pretty(local_err));
        error_free(local_err);
        return;
    }

    bs = find_vmstate_bs();
    if (!bs) {
        monitor_printf(mon, "No block device can accept snapshots\n");
@@ -1972,15 +1981,6 @@ void hmp_savevm(Monitor *mon, const QDict *qdict)
        strftime(sn->name, sizeof(sn->name), "vm-%Y%m%d%H%M%S", &tm);
    }

    /* Delete old snapshots of the same name */
    if (name && bdrv_all_delete_snapshot(name, &bs1, &local_err) < 0) {
        monitor_printf(mon,
                       "Error while deleting snapshot on device '%s': %s\n",
                       bdrv_get_device_name(bs1), error_get_pretty(local_err));
        error_free(local_err);
        goto the_end;
    }

    /* save the VM state */
    f = qemu_fopen_bdrv(bs, 1);
    if (!f) {