Steve Sistare <steven.sist...@oracle.com> writes: > Fail the migration request if options are set that are incompatible > with cpr. > > Signed-off-by: Steve Sistare <steven.sist...@oracle.com> > --- > migration/migration.c | 17 +++++++++++++++++ > qapi/migration.json | 2 ++ > 2 files changed, 19 insertions(+) > > diff --git a/migration/migration.c b/migration/migration.c > index 90a9094..7652fd4 100644 > --- a/migration/migration.c > +++ b/migration/migration.c > @@ -1953,6 +1953,23 @@ static bool migrate_prepare(MigrationState *s, bool > blk, bool blk_inc, > 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 (migrate_colo()) { > error_setg(errp, "No disk migration is required in COLO mode"); > diff --git a/qapi/migration.json b/qapi/migration.json > index 0990297..c6bfe2e 100644 > --- a/qapi/migration.json > +++ b/qapi/migration.json > @@ -657,6 +657,8 @@ > # shared backend must be be non-volatile across reboot, such as by > backing > # it with a dax device. > # > +# cpr-reboot may not be used with postcopy, colo, or background-snapshot. > +#
@cpr-reboot COLO Wrap the line: # @cpr-reboot may not be used with postcopy, COLO, or # background-snapshot. This doesn't tell the reader what settings exactly do not work with @cpr-reboot. For instance "background-snapshot" is about enabling migration capability @background-snapshot. We could write something like "is incompatible with enabling migration capability @background-snapshot". Same for the other two. Worthwhile? > # (since 8.2) > ## > { 'enum': 'MigMode',