[libvirt] [PATCH] qemu: allow snapshotting of sheepdog and rbd disks

Eric Blake eblake at redhat.com
Sat May 26 02:36:54 UTC 2012


On 03/30/2012 07:53 PM, Josh Durgin wrote:
> Signed-off-by: Josh Durgin <josh.durgin at dreamhost.com>
> ---

A bit sparse on the commit message. How long have sheepdog and rbd disks
supported snapshots?  I'm assuming that this is system checkpoint
snapshots (aka 'savevm'), where qemu saves both disk state and VM state
into an internal portion of the same disk file?

>  .gnulib                |    2 +-
>  src/qemu/qemu_driver.c |   14 ++++++++++----
>  2 files changed, 11 insertions(+), 5 deletions(-)
> 
> diff --git a/.gnulib b/.gnulib
> index d5612c7..6b93d00 160000
> --- a/.gnulib
> +++ b/.gnulib
> @@ -1 +1 @@
> -Subproject commit d5612c714c87555f1059d71d347e20271dced322
> +Subproject commit 6b93d00f5410ec183e3a70ebf8e418e3b1bb0191

You probably didn't mean to update git in this patch.

> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 7e6d59c..fc537df 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -9571,12 +9571,18 @@ qemuDomainSnapshotIsAllowed(virDomainObjPtr vm)
>       * that succeed as well
>       */
>      for (i = 0; i < vm->def->ndisks; i++) {
> -        if ((vm->def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_LUN) ||
> -            (vm->def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_DISK &&
> -             STRNEQ_NULLABLE(vm->def->disks[i]->driverType, "qcow2"))) {
> +        virDomainDiskDefPtr disk = vm->def->disks[i];
> +        if (disk->type == VIR_DOMAIN_DISK_TYPE_NETWORK &&
> +            (disk->protocol == VIR_DOMAIN_DISK_PROTOCOL_SHEEPDOG ||
> +             disk->protocol == VIR_DOMAIN_DISK_PROTOCOL_RBD))
> +            continue;
> +
> +        if ((disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) ||
> +            (disk->device == VIR_DOMAIN_DISK_DEVICE_DISK &&
> +             STRNEQ_NULLABLE(disk->driverType, "qcow2"))) {
>              qemuReportError(VIR_ERR_OPERATION_INVALID,
>                              _("Disk '%s' does not support snapshotting"),
> -                            vm->def->disks[i]->src);
> +                            disk->src);

Looks reasonable; does this still apply to the latest libvirt.git?

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120525/e85a6c8d/attachment-0001.sig>


More information about the libvir-list mailing list