Am 19.10.2011 16:59, schrieb Paolo Bonzini:
> Converting a floppy image from RAW to VPC and back will generate
> a zero-padded file of the wrong size, because the geometry is not
> computed correctly.  Special case floppy disk images, handling
> standard MS-DOS capacities (160/180/320/360 for low density
> 5.25" disks, 1200 for high density 5.25" disks, 720/1440/2880
> for 3.5" disks).
> 
> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>

Unrelated to coroutines, isn't it?

> ---
>  block/vpc.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/block/vpc.c b/block/vpc.c
> index cb6c570..549a632 100644
> --- a/block/vpc.c
> +++ b/block/vpc.c
> @@ -463,6 +463,14 @@ static int calculate_geometry(int64_t total_sectors, 
> uint16_t* cyls,
>  {
>      uint32_t cyls_times_heads;
>  
> +    if (total_sectors <= 5760) {
> +        /* Floppy disk geometry */

Please state in the comment that this part is deviating from the
algorithm in the VHD spec, which this function is generally supposed to
implement.

Kevin

Reply via email to