On 3/12/21 1:02 PM, leirao wrote:
From: "Rao, Lei" <lei.rao@intel.com><mailto:lei.rao@intel.com>
We can detect disk migration in migrate_prepare, if disk migration
is enabled in COLO mode, we can directly report an error.and there
is no need to disable block migration at every checkpoint.
Signed-off-by: Lei Rao <lei.rao@intel.com><mailto:lei.rao@intel.com>
Signed-off-by: Zhang Chen <chen.zhang@intel.com><mailto:chen.zhang@intel.com>
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com><mailto:lizhijian@fujitsu.com>
---
migration/colo.c | 6 ------
migration/migration.c | 4 ++++
2 files changed, 4 insertions(+), 6 deletions(-)
DA_
diff --git a/migration/colo.c b/migration/colo.c
index de27662..1aaf316 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -435,12 +435,6 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
if (failover_get_state() != FAILOVER_STATUS_NONE) {
goto out;
}
-
- /* Disable block migration */
- migrate_set_block_enabled(false, &local_err);
- if (local_err) {
- goto out;
- }
qemu_mutex_lock_iothread();
#ifdef CONFIG_REPLICATION
diff --git a/migration/migration.c b/migration/migration.c
index a5ddf43..785a331 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2221,6 +2221,10 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
}
if (blk || blk_inc) {
+ if (migrate_colo_enabled()) {
+ error_setg(errp, "No disk migration is required in COLO mode");
+ return false;
+ }
if (migrate_use_block() || migrate_use_block_incremental()) {
error_setg(errp, "Command options are incompatible with "
"current migration capabilities");