From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42228) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VFPTQ-0006Jb-Jh for qemu-devel@nongnu.org; Fri, 30 Aug 2013 10:14:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VFPTK-0004Q6-KP for qemu-devel@nongnu.org; Fri, 30 Aug 2013 10:14:52 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43382) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VFPTK-0004Py-CQ for qemu-devel@nongnu.org; Fri, 30 Aug 2013 10:14:46 -0400 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r7UEEjNQ015458 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Fri, 30 Aug 2013 10:14:45 -0400 Date: Fri, 30 Aug 2013 16:14:44 +0200 From: Kevin Wolf Message-ID: <20130830141444.GD2840@dhcp-200-207.str.redhat.com> References: <1377866071-27611-1-git-send-email-mreitz@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1377866071-27611-1-git-send-email-mreitz@redhat.com> Subject: Re: [Qemu-devel] [PATCH v4 0/8] Add metadata overlap checks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz Cc: qemu-devel@nongnu.org, Stefan Hajnoczi Am 30.08.2013 um 14:34 hat Max Reitz geschrieben: > If a qcow2 image file becomes corrupted, any write may inadvertently > overwrite important metadata structures such as the L1 table. This > series adds functionality for detecting, preventing and (to some extent) > repairing such collisions. > > v4: > - fixed handling of preallocated zero clusters in patch 4 > - moved OFLAG_COPIED checks into a separate function (this affects > patches 4 and 5); functionality remains unchanged > - patches 1, 2, 3, 6, 7 and 8 remain unmodified (except for line > numbers in block/qcow2-refcount.c) > > v3: > - split PATCH 4/5 into four distinct patches (4/8, 5/8, 6/8 and 7/8, > respectively) > - directly generate a JSON message when marking the image corrupt > - other (minor) fixes according to Kevin's comments > > v2: > - Generally implemented Kevin's comments, especially: > - new QMP event QEVENT_BLOCK_IMAGE_CORRUPTED > - removed BDRV_O_REPAIR in favor of BDRV_O_CHECK | BDRV_O_RDWR > - always check full clusters for overlaps > - removed qcow2_check_allocations in favor of some > qcow2_check_refcounts extensions that will hopefully include all > that functionality > > Max Reitz (8): > qcow2: Add corrupt bit > qcow2: Metadata overlap checks > qcow2: Employ metadata overlap checks > qcow2-refcount: Move OFLAG_COPIED checks > qcow2-refcount: Repair OFLAG_COPIED errors > qcow2-refcount: Repair shared refcount blocks > qcow2_check: Mark image consistent > qemu-iotests: Overlapping cluster allocations > > block/qcow2-cache.c | 17 ++ > block/qcow2-cluster.c | 25 ++- > block/qcow2-refcount.c | 481 +++++++++++++++++++++++++++++++++++++++++---- > block/qcow2-snapshot.c | 22 +++ > block/qcow2.c | 79 +++++++- > block/qcow2.h | 47 ++++- > docs/specs/qcow2.txt | 7 +- > include/block/block.h | 1 + > include/monitor/monitor.h | 1 + > monitor.c | 1 + > tests/qemu-iotests/031.out | 12 +- > tests/qemu-iotests/036.out | 2 +- > tests/qemu-iotests/060 | 111 +++++++++++ > tests/qemu-iotests/060.out | 44 +++++ > tests/qemu-iotests/group | 1 + > 15 files changed, 804 insertions(+), 47 deletions(-) > create mode 100755 tests/qemu-iotests/060 > create mode 100644 tests/qemu-iotests/060.out Thanks, applied to the block branch. Kevin