On 4/23/20 8:23 AM, Kevin Wolf wrote:
So qcow2_cluster_zeroize() seems to accept the unaligned tail. It would
still set the zero flag for the partial last cluster and for the
external data file, bdrv_co_pwrite_zeroes() would have the correct size.
Then I'm in favor of NOT rounding the tail. That's an easy enough change
and we've now justified that it does what we want, so R-b stands with that
one-line tweak.
Would have been too easy... bs->total_sectors isn't updated yet, so the
assertion does fail.
I can make the assertion check end_offset >= ... instead. That should
still check what we wanted to check here and allow the unaligned
extension.
Yes, that works for me.
This feels like the better option to me compared to updating
bs->total_sectors earlier and then undoing that change in every error
path.
Indeed.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org