qemu/include
Max Reitz ceaca56fee block: Add bdrv_has_zero_init_truncate()
No .bdrv_has_zero_init() implementation returns 1 if growing the file
would add non-zero areas (at least with PREALLOC_MODE_OFF), so using it
in lieu of this new function was always safe.

But on the other hand, it is possible that growing an image that is not
zero-initialized would still add a zero-initialized area, like when
using nonpreallocating truncation on a preallocated image.  For callers
that care only about truncation, not about creation with potential
preallocation, this new function is useful.

Alternatively, we could have added a PreallocMode parameter to
bdrv_has_zero_init().  But the only user would have been qemu-img
convert, which does not have a plain PreallocMode value right now -- it
would have to parse the creation option to obtain it.  Therefore, the
simpler solution is to let bdrv_has_zero_init() inquire the
preallocation status and add the new bdrv_has_zero_init_truncate() that
presupposes PREALLOC_MODE_OFF.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190724171239.8764-4-mreitz@redhat.com
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2019-08-19 17:13:26 +02:00
..
authz Include generated QAPI headers less 2019-08-16 13:31:51 +02:00
block block: Add bdrv_has_zero_init_truncate() 2019-08-19 17:13:26 +02:00
chardev Include qemu/main-loop.h less 2019-08-16 13:31:52 +02:00
crypto crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
disas include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
exec Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
fpu include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
hw sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
io Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
libdecnumber include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
migration Header cleanup patches for 2019-08-13 2019-08-16 14:53:43 +01:00
monitor Include hw/qdev-properties.h less 2019-08-16 13:31:53 +02:00
net Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
qapi qapi: Split error.json off common.json 2019-08-16 13:31:51 +02:00
qemu sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h 2019-08-16 13:31:53 +02:00
qom Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
scsi scsi: explicitly list guest-recoverable sense codes 2019-07-15 11:20:42 +02:00
standard-headers virtio-pmem: sync linux headers 2019-07-04 17:00:32 -04:00
sysemu Block layer patches: 2019-08-16 16:43:46 +01:00
ui Clean up inclusion of sysemu/sysemu.h 2019-08-16 13:31:53 +02:00
elf.h linux-user: elf: ELF_HWCAP for s390x 2019-06-07 14:53:26 +02:00
glib-compat.h slirp: Move g_spawn_async_with_fds_qemu compatibility to slirp/ 2019-02-07 15:49:08 +02:00
qemu-common.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-io.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
trace-tcg.h trace: get rid of generated-events.h/generated-events.c 2016-10-12 09:54:52 +02:00