block/block-copy: always align copied region to cluster size
commit7661a886a17ccf3aff398b124baad9dd95f64bed
authorStefan Reiter <s.reiter@proxmox.com>
Mon, 10 Aug 2020 09:55:22 +0000 (10 11:55 +0200)
committerMax Reitz <mreitz@redhat.com>
Mon, 10 Aug 2020 15:12:46 +0000 (10 17:12 +0200)
tree795ea6454efbbc7bd66c621be4c42a78ebe2dc88
parente1d322c40524d2c544d1fcd37b267d106d16d328
block/block-copy: always align copied region to cluster size

Since commit 42ac214406e0 (block/block-copy: refactor task creation)
block_copy_task_create calculates the area to be copied via
bdrv_dirty_bitmap_next_dirty_area, but that can return an unaligned byte
count if the image's last cluster end is not aligned to the bitmap's
granularity.

Always ALIGN_UP the resulting bytes value to satisfy block_copy_do_copy,
which requires the 'bytes' parameter to be aligned to cluster size.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
Message-Id: <20200810095523.15071-1-s.reiter@proxmox.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/block-copy.c