qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 0/4] Fix conversion from ISO to VMDK streamOp


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [PATCH v4 0/4] Fix conversion from ISO to VMDK streamOptimized
Date: Tue, 6 May 2014 16:19:55 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, May 06, 2014 at 09:08:42PM +0800, Fam Zheng wrote:
> Previouly, convert from ISO to VMDK with subformat=streamOptimized fails:
> 
>     $ ./qemu-img convert -O vmdk -o subformat=streamOptimized foo.iso bar.vmdk
>     VMDK: can't write to allocated cluster for streamOptimized
>     qemu-img: error while writing sector 64: Input/output error
> 
> Because current code in qemu-img.c uses the normal convert loop, rather than
> the compressed == true loop. In VMDK streamOptimized, writes must be in 
> cluster
> granularity, because overlapped write to an allocated cluster is -EIO.
> 
> This series adds is_compressed into BlockDriverInfo, and uses compressed
> convertion loop if the target block driver sets this field to true.
> 
> It also implements .bdrv_get_info and .bdrv_write_compressed in VMDK driver to
> fit into this framework.
> 
> Adds a test case to cover the code path in question: source image cluster size
> is smaller.
> 
> v4: Rename .is_compressed -> .needs_compressed_writes. (Stefan)
>     has -> have in commit log in patch 3.
> 
> v3: Finally revisit and address Stefan's review comments on v2 from 2 months
>     ago. Sorry for being so slow on this one.
>     The general approach is the same, changes include:
> 
>     - Split originial "[PATCH v2 5/5] mirror: Check for bdrv_get_info result" 
> and
>       send to list separately, because it's irrelevant with this series.
>     - Don't report cluster_size in bdrv_get_info if it's a flat extent, no 
> need
>       to change type of BlockDriverInfo.cluster_size to 64 bits. So drop
>       "[PATCH v2 3/5] block: Change BlockDriverInfo.cluster_size to 64 bits".
>     - Add qemu-iotests case as [PATCH 4/4].
> 
> 
> Fam Zheng (4):
>   qemu-img: Convert by cluster size if target is compressed
>   vmdk: Implement .bdrv_write_compressed
>   vmdk: Implement .bdrv_get_info()
>   qemu-iotests: Test converting to streamOptimized from small cluster
>     size
> 
>  block/vmdk.c               | 35 +++++++++++++++++++++++++++++++++++
>  include/block/block.h      |  4 ++++
>  qemu-img.c                 |  1 +
>  tests/qemu-iotests/059     |  7 +++++++
>  tests/qemu-iotests/059.out |  8 ++++++++
>  5 files changed, 55 insertions(+)

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]