From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56674) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buexu-0005UQ-7G for qemu-devel@nongnu.org; Thu, 13 Oct 2016 08:18:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1buexp-0002tx-U6 for qemu-devel@nongnu.org; Thu, 13 Oct 2016 08:18:25 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:9395 helo=relay.sw.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1buexp-0002tF-Gp for qemu-devel@nongnu.org; Thu, 13 Oct 2016 08:18:21 -0400 References: <1475232808-4852-1-git-send-email-vsementsov@virtuozzo.com> <1475232808-4852-7-git-send-email-vsementsov@virtuozzo.com> <617c1183-a483-7fb6-5e00-8d6fa5e7394f@redhat.com> <57FCD66F.9090704@virtuozzo.com> From: Vladimir Sementsov-Ogievskiy Message-ID: <57FF7B7D.9070502@virtuozzo.com> Date: Thu, 13 Oct 2016 15:18:05 +0300 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 06/22] qcow2: add dirty bitmaps extension List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Max Reitz , qemu-block@nongnu.org, qemu-devel@nongnu.org Cc: kwolf@redhat.com, armbru@redhat.com, eblake@redhat.com, jsnow@redhat.com, famz@redhat.com, den@openvz.org, stefanha@redhat.com, pbonzini@redhat.com On 12.10.2016 21:21, Max Reitz wrote: > On 11.10.2016 14:09, Vladimir Sementsov-Ogievskiy wrote: >> On 01.10.2016 17:46, Max Reitz wrote: >>> On 30.09.2016 12:53, Vladimir Sementsov-Ogievskiy wrote: >>>> Add dirty bitmap extension as specified in docs/specs/qcow2.txt. >>>> For now, just mirror extension header into Qcow2 state and check >>>> constraints. >>>> >>>> For now, disable image resize if it has bitmaps. It will be fixed later. >>>> >>>> Signed-off-by: Vladimir Sementsov-Ogievskiy >>>> --- >>>> block/qcow2.c | 83 >>>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >>>> block/qcow2.h | 4 +++ >>>> 2 files changed, 87 insertions(+) >>>> >>>> diff --git a/block/qcow2.c b/block/qcow2.c >>>> index c079aa8..08c4ef9 100644 >>>> --- a/block/qcow2.c >>>> +++ b/block/qcow2.c >>> [...] >>> >>>> @@ -162,6 +164,62 @@ static int >>>> qcow2_read_extensions(BlockDriverState *bs, uint64_t start_offset, >>>> } >>>> break; >>>> + case QCOW2_EXT_MAGIC_DIRTY_BITMAPS: >>>> + ret = bdrv_pread(bs->file, offset, &bitmaps_ext, ext.len); >>> Overflows with ext.len > sizeof(bitmaps_ext). >>> >>> (ext.len < sizeof(bitmaps_ext) is also wrong, but less dramatically so.) >>> >>>> + if (ret < 0) { >>>> + error_setg_errno(errp, -ret, "ERROR: bitmaps_ext: " >>>> + "Could not read ext header"); >>>> + return ret; >>>> + } >>>> + >>>> + if (bitmaps_ext.reserved32 != 0) { >>>> + error_setg_errno(errp, -ret, "ERROR: bitmaps_ext: " >>>> + "Reserved field is not zero."); >>> Please drop the full stop at the end. >> what do you mean? goto to fail: here? or not stop at all, just print error? > The "." at the end of the message. :-) > > (https://en.wikipedia.org/wiki/Full_stop) > > Max > aha, cool. didn't know this. ) -- Best regards, Vladimir