[Devel] [PATCH hci-8.1 v4 0/3] dm-qcow2: truncate unused tail of image on suspend
Denis V. Lunev
den at virtuozzo.com
Thu Oct 8 20:09:13 MSK 2026
On 10/8/26 19:01, Alexander Ivanov wrote:
> On postsuspend dm-qcow2 truncates the image file only down to
> file_preallocated_area_start, so clusters at the end of the file freed
> by discard are never given back and the file never shrinks.
>
> This series makes postsuspend scan the refcount blocks backward and
> truncate the file to the end of the last used cluster. Close and
> reload to RO go through postsuspend too, so the tail is given back in
> these cases as well.
>
> Patch 1 adds qcow2_md_page_read_sync() helper, which is needed by the
> scan. Patch 2 is a small cleanup of duplicate prefixes in QC_ERR/QC_INFO
> messages. Patch 3 does the actual truncation.
>
> https://virtuozzo.atlassian.net/browse/VSTOR-148171
>
> v4:
> - Patch 1: document in the comment that the caller must ensure no read
> of the page is in flight.
> - Patch 3: say in the commit message that close and reload to RO go
> through postsuspend too.
>
> v3:
> - Split from the common series with dm-ploop: dm-ploop patches are
> sent as a separate series.
> - Patch 1: rename qcow2_get_md_page_sync() to qcow2_md_page_read_sync(),
> reword commit message and comment.
> - Patch 2: new patch.
> - Patch 3: start the scan from file_preallocated_area_start instead of
> the end of the file and clamp the result to it, as the last cluster
> may be partial; print the scan error with %pe and drop the duplicate
> "dm-qcow2:" prefix from it.
>
> v2:
> - Add dm-ploop support (patches 3-6), as requested in v1 review.
> - dm-qcow2: move get_md_page_sync() to a separate patch as
> qcow2_md_page_read_sync() and use it in qcow2_parse_header() as well.
> - dm-qcow2: start the refcount scan below file_preallocated_area_start
> instead of the end of the file, and truncate to the used end directly
> instead of min(file_preallocated_area_start, used end).
>
> Alexander Ivanov (3):
> dm-qcow2: add qcow2_md_page_read_sync() helper
> dm-qcow2: drop duplicate prefix from QC_ERR/QC_INFO messages
> dm-qcow2: truncate unused tail of image on suspend
>
> drivers/md/dm-qcow2-map.c | 56 ++++++++++++++++++++++++
> drivers/md/dm-qcow2-target.c | 83 +++++++++++++++++++++++++++---------
> drivers/md/dm-qcow2.h | 3 ++
> 3 files changed, 121 insertions(+), 21 deletions(-)
>
why missed my R-b?
Den
More information about the Devel
mailing list