Message ID | 20190612221004.2317-8-mreitz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block: Deal with filters | expand |
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 <mreitz@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 <vsementsov@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; > } > >
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; } 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; }
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 <mreitz@redhat.com> --- block.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)