From: Gerhard Wiesinger <lists@wiesinger.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] block.c, block/vmdk.c: Fixed major bug in VMDK WRITE and READ handling - FIXES DATA CORRUPTION
Date: Sat, 10 Nov 2012 09:30:37 +0100 [thread overview]
Message-ID: <509E10AD.2030602@wiesinger.com> (raw)
In-Reply-To: <509CBE3A.4040103@redhat.com>
On 09.11.2012 09:26, Paolo Bonzini wrote:
> Il 08/11/2012 20:05, Gerhard Wiesinger ha scritto:
>> Fixed a MAJOR BUG in VMDK files on file boundaries on reads
>> and ALSO ON WRITES WHICH MIGHT CORRUPT THE IMAGE AND DATA!!!!!!
>>
>> Triggered for example with the following VMDK file (partly listed):
>> # Extent description
>> RW 4193792 FLAT "XP-W1-f001.vmdk" 0
>> RW 2097664 FLAT "XP-W1-f002.vmdk" 0
>> RW 4193792 FLAT "XP-W1-f003.vmdk" 0
>> RW 512 FLAT "XP-W1-f004.vmdk" 0
>> RW 4193792 FLAT "XP-W1-f005.vmdk" 0
>> RW 2097664 FLAT "XP-W1-f006.vmdk" 0
>> RW 4193792 FLAT "XP-W1-f007.vmdk" 0
>> RW 512 FLAT "XP-W1-f008.vmdk" 0
>>
>> Patch includes:
>> 1.) Patch fixes wrong calculation on extent boundaries. Especially it
>> fixes the relativeness of the sector number to the current extent.
> Please just fix _this_ part. Everything else is not necessary for example
> for distributions to fix this. It's an important bug, so we actually want
> to make that as simple as this.
Sent.
>
>> 2.) Added debug code to block.c and to block/vmdk.c to verify correctness
> Same here. Also, please use the tracing infrastructure---a lot of the debug
> messages you're adding, though not all, are in fact already available (not
> saying the others aren't useful!)
Any chance that the patch with debug code only (after some cleaning)
would be accepted (other modules do debug logging, too)?
I don't like to do useless work.
Tracing infrastructure is quite limited to function calls only (as far
as I saw).
>
>> 3.) Also optimized code which avoids multiplication and uses shifts.
> The compiler can do this for you.
>
> Most importantly, making it more complex for reviewers to find only the
> "interesting" part.
>
> Please check that the attached patch still works.
>
Made some tests and gcc is really clever in optimizing. Even other
multipliers (513, 514, ...) than 512 will be optimized to shifts and
adds until a limit of 512+8 (I think it was that) was reached. :-)
Bugfix only resent.
Ciao,
Gerhard
next prev parent reply other threads:[~2012-11-10 8:30 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-08 19:05 [Qemu-devel] [PATCH] block.c, block/vmdk.c: Fixed major bug in VMDK WRITE and READ handling - FIXES DATA CORRUPTION Gerhard Wiesinger
2012-11-09 5:12 ` Fam Zheng
2012-11-09 6:51 ` Gerhard Wiesinger
2012-11-09 7:38 ` Lei Li
2012-11-09 8:26 ` Paolo Bonzini
2012-11-10 8:30 ` Gerhard Wiesinger [this message]
2012-11-10 8:55 ` Paolo Bonzini
2012-11-10 9:59 ` Gerhard Wiesinger
2012-11-13 12:27 ` Kevin Wolf
2012-11-13 13:36 ` Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=509E10AD.2030602@wiesinger.com \
--to=lists@wiesinger.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).