On 5/25/20 1:08 PM, Alberto Garcia wrote:
Two things need to be taken into account here:

1) With full_discard == true the L2 entry must be cleared completely.
    This also includes the L2 bitmap if the image has extended L2
    entries.

2) With full_discard == false we have to make the discarded cluster
    read back as zeroes. With normal L2 entries this is done with the
    QCOW_OFLAG_ZERO bit, whereas with extended L2 entries this is done
    with the individual 'all zeroes' bits for each subcluster.

    Note however that QCOW_OFLAG_ZERO is not supported in v2 qcow2
    images so, if there is a backing file, discard cannot guarantee
    that the image will read back as zeroes. If this is important for
    the caller it should forbid it as qcow2_co_pdiscard() does (see
    80f5c01183 for more details).

Signed-off-by: Alberto Garcia <[email protected]>
---
  block/qcow2-cluster.c | 52 +++++++++++++++++++------------------------
  1 file changed, 23 insertions(+), 29 deletions(-)


Reviewed-by: Eric Blake <[email protected]>

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org


Reply via email to