Now that qcow2 images have a way to track when the contents are known
to be all zero, it is worth exposing this to clients such as qemu-img
convert.  (Of course, until the next patch wires up qcow2 to actually
set the bit, this patch has no immediate effect; however, keeping it
as a separate patch allows for an easier revert when testing if the
bit makes a difference in qemu-img behavior).

Signed-off-by: Eric Blake <ebl...@redhat.com>
---
 block/qcow2.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/block/qcow2.c b/block/qcow2.c
index 20cce9410c84..3f61d806a14b 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -4938,6 +4938,9 @@ static int qcow2_known_zeroes(BlockDriverState *bs)
      * therefore enough to check the first one.
      */
     preallocated = s->l1_size > 0 && s->l1_table[0] != 0;
+    if (s->autoclear_features & QCOW2_AUTOCLEAR_ALL_ZERO) {
+        r |= BDRV_ZERO_OPEN;
+    }
     if (qemu_in_coroutine()) {
         qemu_co_mutex_unlock(&s->lock);
     }
-- 
2.24.1


Reply via email to