migration: Introduce migrate_has_error()
Introduce a helper to detect whether MigrationState.error is set for whatever reason. This is preparation work for any thread (e.g. source return path thread) to setup errors in an unified way to MigrationState, rather than relying on its own way to set errors (mark_source_rp_bad()). Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Message-ID: <20231004220240.167175-3-peterx@redhat.com>
This commit is contained in:
parent
c94143e587
commit
2b2f6f411e
@ -1234,6 +1234,13 @@ void migrate_set_error(MigrationState *s, const Error *error)
|
||||
}
|
||||
}
|
||||
|
||||
bool migrate_has_error(MigrationState *s)
|
||||
{
|
||||
/* The lock is not helpful here, but still follow the rule */
|
||||
QEMU_LOCK_GUARD(&s->error_mutex);
|
||||
return qatomic_read(&s->error);
|
||||
}
|
||||
|
||||
static void migrate_error_free(MigrationState *s)
|
||||
{
|
||||
QEMU_LOCK_GUARD(&s->error_mutex);
|
||||
|
@ -476,6 +476,7 @@ bool migration_has_all_channels(void);
|
||||
uint64_t migrate_max_downtime(void);
|
||||
|
||||
void migrate_set_error(MigrationState *s, const Error *error);
|
||||
bool migrate_has_error(MigrationState *s);
|
||||
|
||||
void migrate_fd_connect(MigrationState *s, Error *error_in);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user