This series gets rid of all the remaining instances of hardcoded sector sizes in the qcow2 code and adds a check for images whose virtual size is not a multiple of the sector size.
See the individual patches for details. Berto v3: - Patch 2: Use offset_into_cluster() instead of QEMU_IS_ALIGNED - Patch 3: Rewrite qcow2_write_l1_entry() to use bl.request_alignment [Kevin] - Patch 4: Remove alignment check in qcow2_co_copy_range_from() v2: https://lists.gnu.org/archive/html/qemu-block/2020-01/msg00169.html - Modify output of iotest 080 to make it easier to understand [Nir] - Use the QEMU_IS_ALIGNED() macro instead of the modulus operator [Nir] - Tighten some assertions [Kevin] v1: https://lists.gnu.org/archive/html/qemu-block/2020-01/msg00139.html Alberto Garcia (5): qcow2: Don't round the L1 table allocation up to the sector size qcow2: Tighten cluster_offset alignment assertions qcow2: Use bs->bl.request_alignment when updating an L1 entry qcow2: Don't require aligned offsets in qcow2_co_copy_range_from() qcow2: Use BDRV_SECTOR_SIZE instead of the hardcoded value block/qcow2-cluster.c | 30 +++++++++++++++++------------- block/qcow2-refcount.c | 2 +- block/qcow2-snapshot.c | 3 +-- block/qcow2.c | 23 +++++++++-------------- 4 files changed, 28 insertions(+), 30 deletions(-) -- 2.20.1