Applying as is.

On 11/10/26 08:51, Alexander Ivanov wrote:
> Alexander Ivanov (12):
>   dm-qcow2: add qcow2_md_page_read_sync() helper
>   dm-qcow2: drop duplicate prefix from QC_ERR/QC_INFO messages
>   dm-qcow2: extend the file for a new refblock in allocate_cluster()
>   dm-qcow2: complete wbd before ending the data qio
>   dm-qcow2: flush lower md before clearing dirty bit on merge failure
>   dm-qcow2: keep the dirty bit of an image that needs check
>   dm-qcow2: flag the image for check if reftable relocation fails late
>   dm-qcow2: fail the L2 table allocation request on L1 writeback error
>   dm-qcow2: leak clusters allocated for a failed L1/L2 writeback
>   dm-qcow2: retry R1/R2 writeback that failed with ENOSPC
>   dm-qcow2: truncate unused tail of image on suspend
>   dm-qcow2: fix WARN in qrq_endio() on flush failing with ENOSPC

While reviewing v12 we found two older bugs in the L2 writeback revert
path. Both are there since the driver was added, and this series does
not touch them. Please fix them as separate patches:

1. https://virtuozzo.atlassian.net/browse/VSTOR-154310
   On an ext_l2 image a second update of the subcluster bitmap in the
   same wbd overwrites the saved original in pe_page. If the L2
   writeback then fails, the revert leaves entry 0 with allocated
   bits, and the next write to those subclusters goes into the image
   header cluster.

2. https://virtuozzo.atlassian.net/browse/VSTOR-154311
   On an image without ext_l2, a write to an all-zeroes entry with no
   host cluster takes no pe_page. If the L2 writeback then fails, the
   revert clears L2_READS_ALL_ZEROES, and discarded data comes back
   from the backing image.

The scenarios and the proposed fixes are in the tickets.

-- 
Konstantin Khorenko,
Virtuozzo Linux Kernel Team

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to