Message ID | 1382600811-20043-15-git-send-email-pl@kamp.de |
---|---|
State | New |
Headers | show |
Il 24/10/2013 08:46, Peter Lieven ha scritto: > this patch does 2 things: > a) only do additional call outs if BDRV_BLOCK_ZERO is not already set. > b) use the newly introduced bdrv_has_discard_zeroes() ... whose name became bdrv_unallocated_blocks_are_zero :) No big deal. Paolo > to return the > zero state of an unallocated block. the used callout to > bdrv_has_zero_init() is only valid right after bdrv_create. > > Reviewed-by: Eric Blake <eblake@redhat.com> > Signed-off-by: Peter Lieven <pl@kamp.de> > --- > block.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/block.c b/block.c > index 21a992a..69a2d2b 100644 > --- a/block.c > +++ b/block.c > @@ -3263,8 +3263,8 @@ static int64_t coroutine_fn bdrv_co_get_block_status(BlockDriverState *bs, > *pnum, pnum); > } > > - if (!(ret & BDRV_BLOCK_DATA)) { > - if (bdrv_has_zero_init(bs)) { > + if (!(ret & BDRV_BLOCK_DATA) && !(ret & BDRV_BLOCK_ZERO)) { > + if (bdrv_unallocated_blocks_are_zero(bs)) { > ret |= BDRV_BLOCK_ZERO; > } else if (bs->backing_hd) { > BlockDriverState *bs2 = bs->backing_hd; >
diff --git a/block.c b/block.c index 21a992a..69a2d2b 100644 --- a/block.c +++ b/block.c @@ -3263,8 +3263,8 @@ static int64_t coroutine_fn bdrv_co_get_block_status(BlockDriverState *bs, *pnum, pnum); } - if (!(ret & BDRV_BLOCK_DATA)) { - if (bdrv_has_zero_init(bs)) { + if (!(ret & BDRV_BLOCK_DATA) && !(ret & BDRV_BLOCK_ZERO)) { + if (bdrv_unallocated_blocks_are_zero(bs)) { ret |= BDRV_BLOCK_ZERO; } else if (bs->backing_hd) { BlockDriverState *bs2 = bs->backing_hd;