fix checks for drive mirror with bitmap

The QAPI change for QEMU 8.0 dropped redundant has_foo parameters, but
in the blockdev_mirror_common() function (which is not part of the
QAPI itself but called from there) the argument pair was has_bitmap
and bitmap_name rather than has_bitmap and bitmap.

Reported-by: Aaron Lauterer <a.lauterer@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
master
Fiona Ebner 2023-06-15 13:39:00 +02:00 committed by Thomas Lamprecht
parent d847446186
commit ea7662074d
4 changed files with 7 additions and 7 deletions

View File

@ -254,7 +254,7 @@ index 663e2b7002..9099c75992 100644
errp);
if (!job) {
diff --git a/blockdev.c b/blockdev.c
index e464daea58..1010b60804 100644
index e464daea58..50e4a9c682 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -2942,6 +2942,9 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
@ -279,7 +279,7 @@ index e464daea58..1010b60804 100644
sync = MIRROR_SYNC_MODE_FULL;
}
+ if (bitmap) {
+ if (bitmap_name) {
+ if (granularity) {
+ error_setg(errp, "Granularity and bitmap cannot both be set");
+ return;

View File

@ -16,7 +16,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
1 file changed, 3 insertions(+)
diff --git a/blockdev.c b/blockdev.c
index 1010b60804..19f490fce7 100644
index 50e4a9c682..e6b2b1e338 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3036,6 +3036,9 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,

View File

@ -62,7 +62,7 @@ index f42953837b..8f79efaa87 100644
if (bitmap_mode != BITMAP_SYNC_MODE_NEVER) {
diff --git a/blockdev.c b/blockdev.c
index 19f490fce7..9a010f3a86 100644
index e6b2b1e338..bdae211a54 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -3015,7 +3015,36 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
@ -72,7 +72,7 @@ index 19f490fce7..9a010f3a86 100644
+ if ((sync == MIRROR_SYNC_MODE_BITMAP) ||
+ (sync == MIRROR_SYNC_MODE_INCREMENTAL)) {
+ /* done before desugaring 'incremental' to print the right message */
+ if (!bitmap) {
+ if (!bitmap_name) {
+ error_setg(errp, "Must provide a valid bitmap name for "
+ "'%s' sync mode", MirrorSyncMode_str(sync));
+ return;
@ -93,7 +93,7 @@ index 19f490fce7..9a010f3a86 100644
+ bitmap_mode = BITMAP_SYNC_MODE_ON_SUCCESS;
+ }
+
if (bitmap) {
if (bitmap_name) {
+ if (sync != MIRROR_SYNC_MODE_BITMAP) {
+ error_setg(errp, "Sync mode '%s' not supported with bitmap.",
+ MirrorSyncMode_str(sync));

View File

@ -166,7 +166,7 @@ index ca2599de44..636509b83e 100644
+ hmp_handle_error(mon, error);
+}
diff --git a/blockdev.c b/blockdev.c
index 9a010f3a86..b9505c95d3 100644
index bdae211a54..315a27fc09 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -37,6 +37,7 @@