[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: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v4 11/14] vmdk: Return extent's file in bdrv_get_block_status |
Date: |
Tue, 5 Jan 2016 12:23:02 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Mon, 01/04 21:48, Max Reitz wrote:
> 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?
>
You're right, the offset shouldn't be set if compressed. Will fix.
Thanks!
Fam