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