From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54695) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zuhkx-0005Zd-9z for qemu-devel@nongnu.org; Fri, 06 Nov 2015 09:12:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zuhks-0000Ld-B7 for qemu-devel@nongnu.org; Fri, 06 Nov 2015 09:12:43 -0500 Received: from relay.parallels.com ([195.214.232.42]:44699) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zuhks-0000LZ-3h for qemu-devel@nongnu.org; Fri, 06 Nov 2015 09:12:38 -0500 References: <1446657582-21619-1-git-send-email-den@openvz.org> <1446657582-21619-4-git-send-email-den@openvz.org> <20151106140908.GN12285@stefanha-x1.localdomain> From: "Denis V. Lunev" Message-ID: <563CB546.1010508@openvz.org> Date: Fri, 6 Nov 2015 17:12:22 +0300 MIME-Version: 1.0 In-Reply-To: <20151106140908.GN12285@stefanha-x1.localdomain> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 03/11] snapshot: create bdrv_all_delete_snapshot helper List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Kevin Wolf , qemu-devel@nongnu.org, Stefan Hajnoczi , Juan Quintela On 11/06/2015 05:09 PM, Stefan Hajnoczi wrote: > On Wed, Nov 04, 2015 at 08:19:34PM +0300, Denis V. Lunev wrote: >> to delete snapshots from all loaded block drivers. >> >> The patch also ensures proper locking. >> >> Signed-off-by: Denis V. Lunev >> CC: Juan Quintela >> CC: Stefan Hajnoczi >> CC: Kevin Wolf >> --- >> block/snapshot.c | 22 ++++++++++++++++++++ >> include/block/snapshot.h | 2 ++ >> migration/savevm.c | 54 +++++++++--------------------------------------- >> 3 files changed, 34 insertions(+), 44 deletions(-) >> >> diff --git a/block/snapshot.c b/block/snapshot.c >> index d729c76..1b4b846 100644 >> --- a/block/snapshot.c >> +++ b/block/snapshot.c >> @@ -384,3 +384,25 @@ bool bdrv_all_can_snapshot(BlockDriverState **first_bad_bs) >> *first_bad_bs = bs; >> return ok; >> } >> + >> +int bdrv_all_delete_snapshot(const char *name, BlockDriverState **first_bad_bs, >> + Error **err) >> +{ >> + int ret = 0; >> + BlockDriverState *bs = NULL; >> + QEMUSnapshotInfo sn1, *snapshot = &sn1; >> + >> + while ((bs = bdrv_next(bs)) && ret == 0) { > If ret != 0 we will iterate to the next bs. first_bad_bs will be > incorrect. good catch! this applies as well to all patches below. You don't need to point this again :)