Skip to content

Commit

Permalink
migration: factor our snapshottability check in load_vmstate
Browse files Browse the repository at this point in the history
We should check that all inserted and not read-only images support
snapshotting. This could be made using already invented helper
bdrv_all_can_snapshot().

Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
CC: Stefan Hajnoczi <stefanha@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>
  • Loading branch information
Denis V. Lunev authored and Juan Quintela committed Nov 19, 2015
1 parent 4c1cdba commit 849f96e
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions migration/savevm.c
Expand Up @@ -2051,6 +2051,12 @@ int load_vmstate(const char *name)
QEMUFile *f;
int ret;

if (!bdrv_all_can_snapshot(&bs)) {
error_report("Device '%s' is writable but does not support snapshots.",
bdrv_get_device_name(bs));
return -ENOTSUP;
}

bs_vm_state = find_vmstate_bs();
if (!bs_vm_state) {
error_report("No block device supports snapshots");
Expand All @@ -2071,15 +2077,8 @@ int load_vmstate(const char *name)
writable and check if the requested snapshot is available too. */
bs = NULL;
while ((bs = bdrv_next(bs))) {

if (!bdrv_is_inserted(bs) || bdrv_is_read_only(bs)) {
continue;
}

if (!bdrv_can_snapshot(bs)) {
error_report("Device '%s' is writable but does not support snapshots.",
bdrv_get_device_name(bs));
return -ENOTSUP;
continue;
}

ret = bdrv_snapshot_find(bs, &sn, name);
Expand Down

0 comments on commit 849f96e

Please sign in to comment.