> Discard punches holes in place of freed clusters, so they hold no > physical extents, but it doesn't change the file size. On postsuspend > we truncate the image file only down to file_preallocated_area_start, > i.e. we drop preallocations only. So if clusters at the end of the > file are freed (refcount dropped to zero), the file size stays the > same and the image never shrinks. > > Add qcow2_calc_used_end(), which scans refcount blocks backward from > file_preallocated_area_start and returns the end of the last cluster > with non-zero refcount, clamped to file_preallocated_area_start since > the last cluster may be partial. Refcount ranges with no allocated > refblock are skipped at once. > > The scan walks R1 entries normal I/O may never touch, so it validates > them itself instead of letting calc_r2_page_id() WARN on a corrupted > [ ... ] > > https://virtuozzo.atlassian.net/browse/VSTOR-148171 > Feature: dm-qcow2: block device over QCOW2 files driver > > Signed-off-by: Alexander Ivanov <[email protected]>
Sashiko has reviewed this patch and found no issues. It looks great! -- Sashiko AI review ยท https://sashiko.vzint.dev/#/patchset/[email protected]?part=11 _______________________________________________ Devel mailing list [email protected] https://lists.openvz.org/mailman/listinfo/devel
