qemu: snapshot: Don't skip check for qcow2 format with network disks

When the domain's source disk type is network, if source protocol is rbd
or sheepdog, the 'if().. break' will end the current case, which lead to
miss check the driver type is raw or qcow2. Libvirt will allow to create
internal snapshot for a running domain with raw format disk which based
on rbd storage.

While both protocols support internal snapshots of the disk qemu is not
able to use it as it requires some place to store the memory image. The
check if the disk is backed by a qcow2 image needs to be executed
always.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1179533
Signed-off-by: Shanzhi Yu <shyu@redhat.com>
(cherry picked from commit f7c1410b0e)
This commit is contained in:
Shanzhi Yu 2015-02-28 17:51:36 +08:00 committed by Cole Robinson
parent 2362e98273
commit 97015f2fc4

View File

@ -13472,11 +13472,6 @@ qemuDomainSnapshotPrepare(virConnectPtr conn,
active) < 0) active) < 0)
goto cleanup; goto cleanup;
if (dom_disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
(dom_disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_SHEEPDOG ||
dom_disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_RBD)) {
break;
}
if (vm->def->disks[i]->src->format > 0 && if (vm->def->disks[i]->src->format > 0 &&
vm->def->disks[i]->src->format != VIR_STORAGE_FILE_QCOW2) { vm->def->disks[i]->src->format != VIR_STORAGE_FILE_QCOW2) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,