13.06.2019 1:09, Max Reitz wrote: > bdrv_has_zero_init() and the related bdrv_unallocated_blocks_are_zero() > should use bdrv_filtered_cow_child() if they want to check whether the > given BDS has a COW backing file. > > Signed-off-by: Max Reitz <mre...@redhat.com> > --- > block.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/block.c b/block.c > index be18130944..64d6190984 100644 > --- a/block.c > +++ b/block.c > @@ -4933,7 +4933,7 @@ int bdrv_has_zero_init(BlockDriverState *bs) > > /* If BS is a copy on write image, it is initialized to > the contents of the base image, which may not be zeroes. */ > - if (bs->backing) { > + if (bdrv_filtered_cow_child(bs)) { > return 0; > }
Hmm, if you are fixing bdrv_has_zero_init around filters, I'd prefere to fix the whole function, converting the following here too: if (bs->file && bs->drv->is_filter) { return bdrv_has_zero_init(bs->file->bs); } But it's not a real problem: Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> > if (bs->drv->bdrv_has_zero_init) { > @@ -4951,7 +4951,7 @@ bool bdrv_unallocated_blocks_are_zero(BlockDriverState > *bs) > { > BlockDriverInfo bdi; > > - if (bs->backing) { > + if (bdrv_filtered_cow_child(bs)) { > return false; > } > > -- Best regards, Vladimir