From: Max Reitz Date: Wed, 24 Jul 2019 17:12:33 +0000 (+0200) Subject: block: Use bdrv_has_zero_init_truncate() X-Git-Tag: v4.2.0-rc0~227^2~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b647d69adc394312dedb56f6b3ce19b9c316931f;p=thirdparty%2Fqemu.git block: Use bdrv_has_zero_init_truncate() vhdx and parallels call bdrv_has_zero_init() when they do not really care about an image's post-create state but only about what happens when you grow an image. That is a bit ugly, and also overly safe when growing preallocated images without preallocating the new areas. Let them use bdrv_has_zero_init_truncate() instead. Signed-off-by: Max Reitz Message-id: 20190724171239.8764-6-mreitz@redhat.com Reviewed-by: Maxim Levitsky Reviewed-by: Stefano Garzarella [mreitz: Added commit message] Signed-off-by: Max Reitz --- diff --git a/block/parallels.c b/block/parallels.c index 00fae125d14..7cd2714b69f 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -835,7 +835,7 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags, goto fail_options; } - if (!bdrv_has_zero_init(bs->file->bs)) { + if (!bdrv_has_zero_init_truncate(bs->file->bs)) { s->prealloc_mode = PRL_PREALLOC_MODE_FALLOCATE; } diff --git a/block/vhdx.c b/block/vhdx.c index d6070b6fa81..a02d1c99a76 100644 --- a/block/vhdx.c +++ b/block/vhdx.c @@ -1282,7 +1282,7 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num, /* Queue another write of zero buffers if the underlying file * does not zero-fill on file extension */ - if (bdrv_has_zero_init(bs->file->bs) == 0) { + if (bdrv_has_zero_init_truncate(bs->file->bs) == 0) { use_zero_buffers = true; /* zero fill the front, if any */