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>
This commit is contained in:
parent
d847446186
commit
ea7662074d
@ -254,7 +254,7 @@ index 663e2b7002..9099c75992 100644
|
|||||||
errp);
|
errp);
|
||||||
if (!job) {
|
if (!job) {
|
||||||
diff --git a/blockdev.c b/blockdev.c
|
diff --git a/blockdev.c b/blockdev.c
|
||||||
index e464daea58..1010b60804 100644
|
index e464daea58..50e4a9c682 100644
|
||||||
--- a/blockdev.c
|
--- a/blockdev.c
|
||||||
+++ b/blockdev.c
|
+++ b/blockdev.c
|
||||||
@@ -2942,6 +2942,9 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
|
@@ -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;
|
sync = MIRROR_SYNC_MODE_FULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (bitmap) {
|
+ if (bitmap_name) {
|
||||||
+ if (granularity) {
|
+ if (granularity) {
|
||||||
+ error_setg(errp, "Granularity and bitmap cannot both be set");
|
+ error_setg(errp, "Granularity and bitmap cannot both be set");
|
||||||
+ return;
|
+ return;
|
||||||
|
@ -16,7 +16,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/blockdev.c b/blockdev.c
|
diff --git a/blockdev.c b/blockdev.c
|
||||||
index 1010b60804..19f490fce7 100644
|
index 50e4a9c682..e6b2b1e338 100644
|
||||||
--- a/blockdev.c
|
--- a/blockdev.c
|
||||||
+++ b/blockdev.c
|
+++ b/blockdev.c
|
||||||
@@ -3036,6 +3036,9 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
|
@@ -3036,6 +3036,9 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
|
||||||
|
@ -62,7 +62,7 @@ index f42953837b..8f79efaa87 100644
|
|||||||
|
|
||||||
if (bitmap_mode != BITMAP_SYNC_MODE_NEVER) {
|
if (bitmap_mode != BITMAP_SYNC_MODE_NEVER) {
|
||||||
diff --git a/blockdev.c b/blockdev.c
|
diff --git a/blockdev.c b/blockdev.c
|
||||||
index 19f490fce7..9a010f3a86 100644
|
index e6b2b1e338..bdae211a54 100644
|
||||||
--- a/blockdev.c
|
--- a/blockdev.c
|
||||||
+++ b/blockdev.c
|
+++ b/blockdev.c
|
||||||
@@ -3015,7 +3015,36 @@ static void blockdev_mirror_common(const char *job_id, BlockDriverState *bs,
|
@@ -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) ||
|
+ if ((sync == MIRROR_SYNC_MODE_BITMAP) ||
|
||||||
+ (sync == MIRROR_SYNC_MODE_INCREMENTAL)) {
|
+ (sync == MIRROR_SYNC_MODE_INCREMENTAL)) {
|
||||||
+ /* done before desugaring 'incremental' to print the right message */
|
+ /* done before desugaring 'incremental' to print the right message */
|
||||||
+ if (!bitmap) {
|
+ if (!bitmap_name) {
|
||||||
+ error_setg(errp, "Must provide a valid bitmap name for "
|
+ error_setg(errp, "Must provide a valid bitmap name for "
|
||||||
+ "'%s' sync mode", MirrorSyncMode_str(sync));
|
+ "'%s' sync mode", MirrorSyncMode_str(sync));
|
||||||
+ return;
|
+ return;
|
||||||
@ -93,7 +93,7 @@ index 19f490fce7..9a010f3a86 100644
|
|||||||
+ bitmap_mode = BITMAP_SYNC_MODE_ON_SUCCESS;
|
+ bitmap_mode = BITMAP_SYNC_MODE_ON_SUCCESS;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
if (bitmap) {
|
if (bitmap_name) {
|
||||||
+ if (sync != MIRROR_SYNC_MODE_BITMAP) {
|
+ if (sync != MIRROR_SYNC_MODE_BITMAP) {
|
||||||
+ error_setg(errp, "Sync mode '%s' not supported with bitmap.",
|
+ error_setg(errp, "Sync mode '%s' not supported with bitmap.",
|
||||||
+ MirrorSyncMode_str(sync));
|
+ MirrorSyncMode_str(sync));
|
||||||
|
@ -166,7 +166,7 @@ index ca2599de44..636509b83e 100644
|
|||||||
+ hmp_handle_error(mon, error);
|
+ hmp_handle_error(mon, error);
|
||||||
+}
|
+}
|
||||||
diff --git a/blockdev.c b/blockdev.c
|
diff --git a/blockdev.c b/blockdev.c
|
||||||
index 9a010f3a86..b9505c95d3 100644
|
index bdae211a54..315a27fc09 100644
|
||||||
--- a/blockdev.c
|
--- a/blockdev.c
|
||||||
+++ b/blockdev.c
|
+++ b/blockdev.c
|
||||||
@@ -37,6 +37,7 @@
|
@@ -37,6 +37,7 @@
|
||||||
|
Loading…
Reference in New Issue
Block a user