Backups sometimes need a non-64KiB transfer cluster size. See patch #2 for the detailed justificaton.
=== v4: === 02: Polished the error message. === v3: === 01: +R-B 02: Added failure mode for bdrv_get_info, including critical failure for when we don't have a backing file but couldn't retrieve the cluster_size info. === v2: === 01: Removed "sectors_per_cluster" as a cached property of the Backup Block Job, In favor of recomputing it with a small function where needed. (I like v1 more. Thoughts?) 02: Expand correction to all backup modes instead of just incremental. Added credit: Thanks to Fam Z for noticing this problem! 03: Minor phrasing change in a comment. Added r-b. ________________________________________________________________________________ For convenience, this branch is available at: https://github.com/jnsnow/qemu.git branch incremental-granularity-fix https://github.com/jnsnow/qemu/tree/incremental-granularity-fix This version is tagged incremental-granularity-fix-v4: https://github.com/jnsnow/qemu/releases/tag/incremental-granularity-fix-v4 John Snow (3): block/backup: make backup cluster size configurable block/backup: avoid copying less than full target clusters iotests/124: Add cluster_size mismatch test block/backup.c | 87 ++++++++++++++++++++++++++++++---------------- tests/qemu-iotests/124 | 58 ++++++++++++++++++++++++++++--- tests/qemu-iotests/124.out | 4 +-- 3 files changed, 112 insertions(+), 37 deletions(-) -- 2.4.3