Am 26.09.2016 um 10:08 hat Pavel Dovgalyuk geschrieben: > 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 <pavel.dovga...@ispras.ru>
But that's exactly what the existing code implements? If a driver doesn't provide .bdrv_snapshot_goto, the request is redirected to bs->file. > 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; > + } This, on the other hand, doesn't redirect the request, but silently ignores it. That is, loading the snapshot will apparently succeed, but it wouldn't actually load anything and the disk would stay in its current state. > if (drv->bdrv_snapshot_goto) { > return drv->bdrv_snapshot_goto(bs, snapshot_id); > } Kevin