[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 11/14] vmdk: Return extent's file in bdrv_get
From: |
Max Reitz |
Subject: |
Re: [Qemu-devel] [PATCH v4 11/14] vmdk: Return extent's file in bdrv_get_block_status |
Date: |
Mon, 4 Jan 2016 21:48:02 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 |
On 24.12.2015 06:50, Fam Zheng wrote:
> Reviewed-by: Stefan Hajnoczi <address@hidden>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> block/vmdk.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/block/vmdk.c b/block/vmdk.c
> index f5a56fd..b60a5af 100644
> --- a/block/vmdk.c
> +++ b/block/vmdk.c
> @@ -1265,6 +1265,7 @@ static int64_t coroutine_fn
> vmdk_co_get_block_status(BlockDriverState *bs,
> 0, 0);
> qemu_co_mutex_unlock(&s->lock);
>
> + index_in_cluster = vmdk_find_index_in_cluster(extent, sector_num);
> switch (ret) {
> case VMDK_ERROR:
> ret = -EIO;
> @@ -1276,15 +1277,13 @@ static int64_t coroutine_fn
> vmdk_co_get_block_status(BlockDriverState *bs,
> ret = BDRV_BLOCK_ZERO;
> break;
> case VMDK_OK:
> - ret = BDRV_BLOCK_DATA;
> - if (extent->file == bs->file && !extent->compressed) {
> - ret |= BDRV_BLOCK_OFFSET_VALID | offset;
> - }
> -
> + ret = BDRV_BLOCK_DATA | BDRV_BLOCK_OFFSET_VALID;
> + ret |= (offset + (index_in_cluster << BDRV_SECTOR_BITS))
> + & BDRV_BLOCK_OFFSET_MASK;
> + *file = extent->file->bs;
What if the extent is compressed?
Max
> break;
> }
>
> - index_in_cluster = vmdk_find_index_in_cluster(extent, sector_num);
> n = extent->cluster_sectors - index_in_cluster;
> if (n > nb_sectors) {
> n = nb_sectors;
>
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH v4 11/14] vmdk: Return extent's file in bdrv_get_block_status,
Max Reitz <=