From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36200) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XYWU1-0007FG-JS for qemu-devel@nongnu.org; Mon, 29 Sep 2014 04:39:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XYWTw-0002aU-Ot for qemu-devel@nongnu.org; Mon, 29 Sep 2014 04:39:01 -0400 Received: from [58.251.49.30] (port=55320 helo=mail.sangfor.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XYWTw-0002Yp-CY for qemu-devel@nongnu.org; Mon, 29 Sep 2014 04:38:56 -0400 Date: Mon, 29 Sep 2014 16:38:02 +0800 From: "Zhang Haoyu" Message-ID: <201409291637594172481@sangfor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH bugfix v2] snapshot: fix referencing wrong variable in while loop in do_delvm List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Cc: Kevin Wolf , Markus Armbruster , Stefan Hajnoczi , xiawenc The while loop variabal is "bs1", but "bs" is always passed to bdrv_snapshot_delete_by_id_or_name. Broken in commit a89d89d, v1.7.0. v1 -> v2: * add broken commit id to commit message Signed-off-by: Zhang Haoyu Reviewed-by: Markus Armbruster --- savevm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/savevm.c b/savevm.c index e19ae0a..2d8eb96 100644 --- a/savevm.c +++ b/savevm.c @@ -1245,19 +1245,18 @@ int load_vmstate(const char *name) void do_delvm(Monitor *mon, const QDict *qdict) { - BlockDriverState *bs, *bs1; + BlockDriverState *bs; Error *err = NULL; const char *name = qdict_get_str(qdict, "name"); - bs = find_vmstate_bs(); - if (!bs) { + if (!find_vmstate_bs()) { monitor_printf(mon, "No block device supports snapshots\n"); return; } - bs1 = NULL; - while ((bs1 = bdrv_next(bs1))) { - if (bdrv_can_snapshot(bs1)) { + bs = NULL; + while ((bs = bdrv_next(bs))) { + if (bdrv_can_snapshot(bs)) { bdrv_snapshot_delete_by_id_or_name(bs, name, &err); if (err) { monitor_printf(mon, -- 1.7.12.4