diff options
author | Denis V. Lunev <den@openvz.org> | 2015-11-19 09:42:04 +0300 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2015-11-19 11:50:00 +0100 |
commit | 4c1cdbaad07d067f3d156687d79014ab44387e2c (patch) | |
tree | f5eb7f5ba89b5f5b9c074ac5260f91c04fe09d12 /migration/savevm.c | |
parent | 9b00ea376d42e543feb12d7ce5435366d01aab1b (diff) |
snapshot: create bdrv_all_goto_snapshot helper
to switch to snapshot on all loaded block drivers.
The patch also ensures proper locking.
Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
CC: Kevin Wolf <kwolf@redhat.com>
Tested-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration/savevm.c')
-rw-r--r-- | migration/savevm.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index c52cbbeb3d..254e51de34 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2093,16 +2093,11 @@ int load_vmstate(const char *name) /* Flush all IO requests so they don't interfere with the new state. */ bdrv_drain_all(); - bs = NULL; - while ((bs = bdrv_next(bs))) { - if (bdrv_can_snapshot(bs)) { - ret = bdrv_snapshot_goto(bs, name); - if (ret < 0) { - error_report("Error %d while activating snapshot '%s' on '%s'", - ret, name, bdrv_get_device_name(bs)); - return ret; - } - } + ret = bdrv_all_goto_snapshot(name, &bs); + if (ret < 0) { + error_report("Error %d while activating snapshot '%s' on '%s'", + ret, name, bdrv_get_device_name(bs)); + return ret; } /* restore the VM state */ |