From: Stefan Weil <weil@mail.berlios.de>
To: "François Revol" <revol@free.fr>
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Subject: [Qemu-devel] Re: [PATCH] vdi: Fix image opening and creation for odd disk sizes
Date: Sun, 09 May 2010 12:17:19 +0200 [thread overview]
Message-ID: <4BE68BAF.4040700@mail.berlios.de> (raw)
In-Reply-To: <4257163836-BeMail@laptop>
Am 07.05.2010 13:55, schrieb François Revol:
> Le Fri, 07 May 2010 09:55:23 +0200, Kevin Wolf a écrit :
>> Am 06.05.2010 20:29, schrieb Stefan Weil:
>>> This patch fixes a regression introduced by commit
>>> 95a2f9bc588c3f83375d87b0a9394f89a1bcfada.
>>>
>>> The fix is based on a patch from Kevin Wolf. Here his comment:
>>>
>>> "The number of blocks needs to be rounded up to cover all of the
>>> virtual hard
>>> disk. Without this fix, we can't even open our own images if their
>>> size is not
>>> a multiple of the block size."
>>>
>>> While Kevin's patch addressed vdi_create, my modification also
>>> fixes
>>> vdi_open which now accepts any image which is large enough to hold
>>> the blocks.
>>
>> Shouldn't it be the other way round? That is, an image which has some
>> unused blocks at its end makes sense, whereas an image with a virtual
>> disk size that can't be represented with the number of blocks
>> doesn't?
>
> Exactly, else you don't create what you are asked for.
>
>>> I also decided to keep the original code in vdi_create which rounds
>>> down.
>>> Rounding works in both directions, and there are good arguments for
>>> both,
>>> so I just left the original simple code.
>>>
>>> It is very important to use the rounded value for the new disk
>>> size, too -
>>> otherwise VirtualBox cannot open our disk image.
>>
>> So you're saying that in VDI you can't represent disks with an odd
>> size?
>> The one thing common across image formats seems to be that they are
>> broken...
>
> VB works quite well with my converted laptop image which indeed doesn't
> end on block boundary.
>
> Was it because you were just setting size larger than the covered by
> the blocks ?
>
> François.
Kevin and you are right, and my interpretation of disk_size was wrong.
disk_size is not the size used for the blocks (then it would have to be
large enough to keep all blocks).
disk_size is the number of bytes which are really used for data
(so it is less or equal blocks_in_image * 1 MiB). VBoxManage
allows creation of disk images which use the last block only partially,
something I did not know up to now.
Kevin's patch is correct but still incomplete. VBoxManage can
create images with really odd disk sizes (even sizes which are not
a multiple of the sector size), so the checks in vdi_open
need modifications. The current code also fails for read or write
access beyond the last block.
So I'll send a new patch...
Regards
Stefan
next prev parent reply other threads:[~2010-05-09 10:17 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-06 12:55 [Qemu-devel] [PATCH] vdi: Fix image creation Kevin Wolf
2010-05-06 18:05 ` [Qemu-devel] " Stefan Weil
2010-05-06 18:29 ` [Qemu-devel] [PATCH] vdi: Fix image opening and creation for odd disk sizes Stefan Weil
2010-05-07 7:55 ` [Qemu-devel] " Kevin Wolf
2010-05-07 11:55 ` François Revol
2010-05-09 10:17 ` Stefan Weil [this message]
2010-05-10 7:47 ` Kevin Wolf
2010-05-10 20:12 ` [Qemu-devel] " Stefan Weil
2010-05-10 20:44 ` [Qemu-devel] " François Revol
2010-05-11 7:52 ` Kevin Wolf
2010-05-12 18:25 ` [Qemu-devel] [PATCH] block/vdi: " Stefan Weil
2010-05-12 18:56 ` [Qemu-devel] " Kevin Wolf
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=4BE68BAF.4040700@mail.berlios.de \
--to=weil@mail.berlios.de \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=revol@free.fr \
/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).