diff options
author | Denis V. Lunev <den@openvz.org> | 2015-11-19 09:42:08 +0300 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2015-11-19 11:50:00 +0100 |
commit | a9085f9b5583ba7a02b412ba08f929555112c244 (patch) | |
tree | 55a9d5a9e339a2e08a6e7e9c5af079a99dd8849c /migration/savevm.c | |
parent | c6258b04f19bc690b576b089f621cb5333c533d7 (diff) |
snapshot: create bdrv_all_create_snapshot helper
to create snapshot for all loaded block drivers.
The patch also ensures proper locking.
Signed-off-by: Denis V. Lunev <den@openvz.org>
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 | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index 63c07e1b9a..80107e32b1 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1996,19 +1996,10 @@ void hmp_savevm(Monitor *mon, const QDict *qdict) goto the_end; } - /* create the snapshots */ - - bs1 = NULL; - while ((bs1 = bdrv_next(bs1))) { - if (bdrv_can_snapshot(bs1)) { - /* Write VM state size only to the image that contains the state */ - sn->vm_state_size = (bs == bs1 ? vm_state_size : 0); - ret = bdrv_snapshot_create(bs1, sn); - if (ret < 0) { - monitor_printf(mon, "Error while creating snapshot on '%s'\n", - bdrv_get_device_name(bs1)); - } - } + ret = bdrv_all_create_snapshot(sn, bs, vm_state_size, &bs); + if (ret < 0) { + monitor_printf(mon, "Error while creating snapshot on '%s'\n", + bdrv_get_device_name(bs)); } the_end: |