From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33627) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VVcjO-0005Ds-EO for qemu-devel@nongnu.org; Mon, 14 Oct 2013 03:38:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VVcjD-0003vg-TE for qemu-devel@nongnu.org; Mon, 14 Oct 2013 03:38:22 -0400 Received: from e28smtp01.in.ibm.com ([122.248.162.1]:44486) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VVcjD-0003vJ-7p for qemu-devel@nongnu.org; Mon, 14 Oct 2013 03:38:11 -0400 Received: from /spool/local by e28smtp01.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 14 Oct 2013 13:08:05 +0530 Received: from d28relay03.in.ibm.com (d28relay03.in.ibm.com [9.184.220.60]) by d28dlp03.in.ibm.com (Postfix) with ESMTP id DF5FC1258051 for ; Mon, 14 Oct 2013 13:08:30 +0530 (IST) Received: from d28av03.in.ibm.com (d28av03.in.ibm.com [9.184.220.65]) by d28relay03.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r9E7ehU938993930 for ; Mon, 14 Oct 2013 13:10:43 +0530 Received: from d28av03.in.ibm.com (localhost [127.0.0.1]) by d28av03.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r9E7c3A4028259 for ; Mon, 14 Oct 2013 13:08:03 +0530 Message-ID: <525B9F59.8020303@linux.vnet.ibm.com> Date: Mon, 14 Oct 2013 15:38:01 +0800 From: Wenchao Xia MIME-Version: 1.0 References: <1378695482-29805-1-git-send-email-xiawenc@linux.vnet.ibm.com> <20131002122848.GD12200@stefanha-thinkpad.redhat.com> In-Reply-To: <20131002122848.GD12200@stefanha-thinkpad.redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH V3 0/7] qcow2: rollback the modification on fail in snapshot creation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: kwolf@redhat.com, pbonzini@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com 于 2013/10/2 20:28, Stefan Hajnoczi 写道: > On Mon, Sep 09, 2013 at 10:57:55AM +0800, Wenchao Xia wrote: >> V2: >> 1: all fail case will goto fail section. >> 2: add the goto code. >> v3: >> Address Stefan's comments: >> 2: don't goto fail after allocation failure. >> 3: use sn->l1size correctly in qcow2_free_cluster(). >> 4-7: add test case to verify the error paths. >> Other: >> 1: new patch fix a existing bug, which will be exposed in error path test. >> >> >> Wenchao Xia (7): >> 1 qcow2: restore nb_snapshots when fail in snapshot creation >> 2 qcow2: free allocated cluster on fail in qcow2_write_snapshots() >> 3 qcow2: cancel the modification on fail in qcow2_snapshot_create() >> 4 blkdebug: add debug events for snapshot >> 5 qcow2: use debug events for snapshot >> 6 qcow2: print message for error path in snapshot creation >> 7 qemu-iotests: add test for qcow2 snapshot >> >> block/blkdebug.c | 4 + >> block/qcow2-snapshot.c | 80 ++++++++++++++-- >> include/block/block.h | 4 + >> tests/qemu-iotests/063 | 229 ++++++++++++++++++++++++++++++++++++++++++++ >> tests/qemu-iotests/063.out | 37 +++++++ >> tests/qemu-iotests/group | 1 + >> 6 files changed, 348 insertions(+), 7 deletions(-) >> create mode 100755 tests/qemu-iotests/063 >> create mode 100644 tests/qemu-iotests/063.out > Makes sense but keep in mind that it's better to leak clusters than to > corrupt the image further. We have to be very careful in these error > paths, especially when a big operation could have failed partway > through. I left comments where I thought the patches need to be > changed. > Thanks for review. Since Max have already added some error path code in upstream, I rebased and skip cluster freeing when fail in image header update.