Skip to content

Commit

Permalink
migration/rdma: rdma_accept_incoming_migration fix error handling
Browse files Browse the repository at this point in the history
rdma_accept_incoming_migration is called from an fd handler and
can't return an Error * anywhere.
Currently it's leaking Error's in errp/local_err - there's
no point putting them in there unless we can report them.

Turn most into fprintf's, and the last into an error_reportf_err
where it's coming up from another function.

Signed-off-by: Dr. David Alan Gilbert <[email protected]>
Reviewed-by: Juan Quintela <[email protected]>
Signed-off-by: Juan Quintela <[email protected]>
  • Loading branch information
dagrh authored and Juan Quintela committed Feb 13, 2020
1 parent d05de9e commit 2a1bc8b
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions migration/rdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -3980,13 +3980,13 @@ static void rdma_accept_incoming_migration(void *opaque)
RDMAContext *rdma = opaque;
int ret;
QEMUFile *f;
Error *local_err = NULL, **errp = &local_err;
Error *local_err = NULL;

trace_qemu_rdma_accept_incoming_migration();
ret = qemu_rdma_accept(rdma);

if (ret) {
ERROR(errp, "RDMA Migration initialization failed!");
fprintf(stderr, "RDMA ERROR: Migration initialization failed\n");
return;
}

Expand All @@ -3998,13 +3998,16 @@ static void rdma_accept_incoming_migration(void *opaque)

f = qemu_fopen_rdma(rdma, "rb");
if (f == NULL) {
ERROR(errp, "could not qemu_fopen_rdma!");
fprintf(stderr, "RDMA ERROR: could not qemu_fopen_rdma\n");
qemu_rdma_cleanup(rdma);
return;
}

rdma->migration_started_on_destination = 1;
migration_fd_process_incoming(f, errp);
migration_fd_process_incoming(f, &local_err);
if (local_err) {
error_reportf_err(local_err, "RDMA ERROR:");
}
}

void rdma_start_incoming_migration(const char *host_port, Error **errp)
Expand Down

0 comments on commit 2a1bc8b

Please sign in to comment.