From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60692) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1boS8g-00059a-AO for qemu-devel@nongnu.org; Mon, 26 Sep 2016 05:23:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1boS8b-0000Ob-AH for qemu-devel@nongnu.org; Mon, 26 Sep 2016 05:23:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47680) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1boS8b-0000OT-3n for qemu-devel@nongnu.org; Mon, 26 Sep 2016 05:23:49 -0400 Date: Mon, 26 Sep 2016 11:23:46 +0200 From: Kevin Wolf Message-ID: <20160926092346.GE6093@noname.str.redhat.com> References: <20160926080757.6992.74311.stgit@PASHA-ISP> <20160926080838.6992.95614.stgit@PASHA-ISP> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160926080838.6992.95614.stgit@PASHA-ISP> Subject: Re: [Qemu-devel] [PATCH v5 7/9] block: don't make snapshots for filters List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Pavel Dovgalyuk Cc: qemu-devel@nongnu.org, peter.maydell@linaro.org, quintela@redhat.com, jasowang@redhat.com, mst@redhat.com, pbonzini@redhat.com 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 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