60ae3775bf
No major semantic changes, mostly just deprecations and changed function signatures. Drop the extra/ patches, as they have been applied upstream. The added extra/ patch was accepted upstream[0] but has not been picked up for 5.1. It is required for non-4M aligned backups to work with PBS. [0] https://lists.gnu.org/archive/html/qemu-devel/2020-08/msg01671.html Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
35 lines
1.3 KiB
Diff
35 lines
1.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Reiter <s.reiter@proxmox.com>
|
|
Date: Thu, 6 Aug 2020 15:43:58 +0200
|
|
Subject: [PATCH] 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>
|
|
---
|
|
block/block-copy.c | 3 +++
|
|
1 file changed, 3 insertions(+)
|
|
|
|
diff --git a/block/block-copy.c b/block/block-copy.c
|
|
index f7428a7c08..a30b9097ef 100644
|
|
--- a/block/block-copy.c
|
|
+++ b/block/block-copy.c
|
|
@@ -142,6 +142,9 @@ static BlockCopyTask *block_copy_task_create(BlockCopyState *s,
|
|
return NULL;
|
|
}
|
|
|
|
+ assert(QEMU_IS_ALIGNED(offset, s->cluster_size));
|
|
+ bytes = QEMU_ALIGN_UP(bytes, s->cluster_size);
|
|
+
|
|
/* region is dirty, so no existent tasks possible in it */
|
|
assert(!find_conflicting_task(s, offset, bytes));
|
|
|