migration: options incompatible with cpr
Fail the migration request if options are set that are incompatible with cpr. Signed-off-by: Steve Sistare <steven.sistare@oracle.com> Reviewed-by: Peter Xu <peterx@redhat.com> Link: https://lore.kernel.org/r/1708622920-68779-15-git-send-email-steven.sistare@oracle.com Signed-off-by: Peter Xu <peterx@redhat.com>
This commit is contained in:
parent
ce5db1cb49
commit
cbdafc1b34
@ -1953,6 +1953,23 @@ static bool migrate_prepare(MigrationState *s, bool blk, bool blk_inc,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (migrate_mode_is_cpr(s)) {
|
||||||
|
const char *conflict = NULL;
|
||||||
|
|
||||||
|
if (migrate_postcopy()) {
|
||||||
|
conflict = "postcopy";
|
||||||
|
} else if (migrate_background_snapshot()) {
|
||||||
|
conflict = "background snapshot";
|
||||||
|
} else if (migrate_colo()) {
|
||||||
|
conflict = "COLO";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (conflict) {
|
||||||
|
error_setg(errp, "Cannot use %s with CPR", conflict);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (blk || blk_inc) {
|
if (blk || blk_inc) {
|
||||||
if (migrate_colo()) {
|
if (migrate_colo()) {
|
||||||
error_setg(errp, "No disk migration is required in COLO mode");
|
error_setg(errp, "No disk migration is required in COLO mode");
|
||||||
|
@ -657,6 +657,8 @@
|
|||||||
# shared backend must be be non-volatile across reboot, such as by backing
|
# shared backend must be be non-volatile across reboot, such as by backing
|
||||||
# it with a dax device.
|
# it with a dax device.
|
||||||
#
|
#
|
||||||
|
# cpr-reboot may not be used with postcopy, colo, or background-snapshot.
|
||||||
|
#
|
||||||
# (since 8.2)
|
# (since 8.2)
|
||||||
##
|
##
|
||||||
{ 'enum': 'MigMode',
|
{ 'enum': 'MigMode',
|
||||||
|
Loading…
Reference in New Issue
Block a user