Re: [Qemu-devel] [PATCH v4 3/8] block: don't make snapshots for filters

2016-09-21 Thread Pavel Dovgalyuk


> -Original Message-
> From: Paolo Bonzini [mailto:pbonz...@redhat.com]
> Sent: Wednesday, September 21, 2016 6:37 PM
> To: Pavel Dovgalyuk; qemu-devel@nongnu.org
> Cc: peter.mayd...@linaro.org; jasow...@redhat.com; quint...@redhat.com; 
> m...@redhat.com
> Subject: Re: [PATCH v4 3/8] block: don't make snapshots for filters
> 
> 
> 
> On 21/09/2016 13:33, Pavel Dovgalyuk wrote:
> > This patch disables snapshotting for block driver filters.
> > It is needed, because snapshots should be created
> > in underlying disk images, not in filters itself.
> 
> I don't understand this patch.  Who would take care of doing the
> bdrv_snapshot_goto on the underlying image?

loadvm needs to make bdrv_snapshot_goto. It discovers top-level replay driver 
and
tries to perform bdrv_snapshot_goto for it.

Patches 3 and 4 fix that. They allow passing through the replay driver and
make saving/restoring of the actual image.

Pavel Dovgalyuk

> 
> > Signed-off-by: Pavel Dovgalyuk 
> > ---
> >  block/snapshot.c |3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/block/snapshot.c b/block/snapshot.c
> > index bf5c2ca..8998b8b 100644
> > --- a/block/snapshot.c
> > +++ b/block/snapshot.c
> > @@ -184,6 +184,9 @@ int bdrv_snapshot_goto(BlockDriverState *bs,
> >  if (!drv) {
> >  return -ENOMEDIUM;
> >  }
> > +if (drv->is_filter) {
> > +return 0;
> > +}
> >  if (drv->bdrv_snapshot_goto) {
> >  return drv->bdrv_snapshot_goto(bs, snapshot_id);
> >  }
> >




Re: [Qemu-devel] [PATCH v4 3/8] block: don't make snapshots for filters

2016-09-21 Thread Paolo Bonzini


On 21/09/2016 13:33, Pavel Dovgalyuk wrote:
> This patch disables snapshotting for block driver filters.
> It is needed, because snapshots should be created
> in underlying disk images, not in filters itself.

I don't understand this patch.  Who would take care of doing the
bdrv_snapshot_goto on the underlying image?

Paolo

> Signed-off-by: Pavel Dovgalyuk 
> ---
>  block/snapshot.c |3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/block/snapshot.c b/block/snapshot.c
> index bf5c2ca..8998b8b 100644
> --- a/block/snapshot.c
> +++ b/block/snapshot.c
> @@ -184,6 +184,9 @@ int bdrv_snapshot_goto(BlockDriverState *bs,
>  if (!drv) {
>  return -ENOMEDIUM;
>  }
> +if (drv->is_filter) {
> +return 0;
> +}
>  if (drv->bdrv_snapshot_goto) {
>  return drv->bdrv_snapshot_goto(bs, snapshot_id);
>  }
> 



[Qemu-devel] [PATCH v4 3/8] block: don't make snapshots for filters

2016-09-21 Thread Pavel Dovgalyuk
This patch disables snapshotting for block driver filters.
It is needed, because snapshots should be created
in underlying disk images, not in filters itself.

Signed-off-by: Pavel Dovgalyuk 
---
 block/snapshot.c |3 +++
 1 file changed, 3 insertions(+)

diff --git a/block/snapshot.c b/block/snapshot.c
index bf5c2ca..8998b8b 100644
--- a/block/snapshot.c
+++ b/block/snapshot.c
@@ -184,6 +184,9 @@ int bdrv_snapshot_goto(BlockDriverState *bs,
 if (!drv) {
 return -ENOMEDIUM;
 }
+if (drv->is_filter) {
+return 0;
+}
 if (drv->bdrv_snapshot_goto) {
 return drv->bdrv_snapshot_goto(bs, snapshot_id);
 }