On 28.06.20 13:02, 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 > Reviewed-by: Eric Blake > --- > block/qcow2-cluster.c | 52 +++++++++++++++++++------------------------ > 1 file changed, 23 insertions(+), 29 deletions(-) Reviewed-by: Max Reitz