migration: Allow migrate_fd_connect to take an Error *
Allow whatever is performing the connection to pass migrate_fd_connect an error to indicate there was a problem during connection, an allow us to clean up. The caller must free the error. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
2b3805f370
commit
cce8040bb0
@ -78,6 +78,6 @@ void migration_channel_connect(MigrationState *s,
|
||||
|
||||
s->to_dst_file = f;
|
||||
|
||||
migrate_fd_connect(s);
|
||||
migrate_fd_connect(s, NULL);
|
||||
}
|
||||
}
|
||||
|
@ -2378,10 +2378,15 @@ static void *migration_thread(void *opaque)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void migrate_fd_connect(MigrationState *s)
|
||||
void migrate_fd_connect(MigrationState *s, Error *error_in)
|
||||
{
|
||||
s->expected_downtime = s->parameters.downtime_limit;
|
||||
s->cleanup_bh = qemu_bh_new(migrate_fd_cleanup, s);
|
||||
if (error_in) {
|
||||
migrate_fd_error(s, error_in);
|
||||
migrate_fd_cleanup(s);
|
||||
return;
|
||||
}
|
||||
|
||||
qemu_file_set_blocking(s->to_dst_file, true);
|
||||
qemu_file_set_rate_limit(s->to_dst_file,
|
||||
|
@ -190,7 +190,7 @@ uint64_t migrate_max_downtime(void);
|
||||
void migrate_set_error(MigrationState *s, const Error *error);
|
||||
void migrate_fd_error(MigrationState *s, const Error *error);
|
||||
|
||||
void migrate_fd_connect(MigrationState *s);
|
||||
void migrate_fd_connect(MigrationState *s, Error *error_in);
|
||||
|
||||
MigrationState *migrate_init(void);
|
||||
bool migration_is_blocked(Error **errp);
|
||||
|
@ -3758,7 +3758,7 @@ void rdma_start_outgoing_migration(void *opaque,
|
||||
trace_rdma_start_outgoing_migration_after_rdma_connect();
|
||||
|
||||
s->to_dst_file = qemu_fopen_rdma(rdma, "wb");
|
||||
migrate_fd_connect(s);
|
||||
migrate_fd_connect(s, NULL);
|
||||
return;
|
||||
err:
|
||||
g_free(rdma);
|
||||
|
Loading…
Reference in New Issue
Block a user