static void checkpoint_done(libxl__egc *egc,
libxl__stream_read_state *stream, int rc);
static void stream_done(libxl__egc *egc,
- libxl__stream_read_state *stream);
+ libxl__stream_read_state *stream, int rc);
static void conversion_done(libxl__egc *egc,
libxl__conversion_helper_state *chs, int rc);
static void check_all_finished(libxl__egc *egc,
return;
}
- if (!stream->rc)
- stream->rc = rc;
- stream_done(egc, stream);
+ stream_done(egc, stream, rc);
}
static void checkpoint_done(libxl__egc *egc,
}
static void stream_done(libxl__egc *egc,
- libxl__stream_read_state *stream)
+ libxl__stream_read_state *stream, int rc)
{
libxl__sr_record_buf *rec, *trec;
LIBXL_STAILQ_FOREACH_SAFE(rec, &stream->record_queue, entry, trec)
free_record(rec);
- check_all_finished(egc, stream, stream->rc);
+ check_all_finished(egc, stream, rc);
}
void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
static void stream_complete(libxl__egc *egc,
libxl__stream_write_state *stream, int rc);
static void stream_done(libxl__egc *egc,
- libxl__stream_write_state *stream);
+ libxl__stream_write_state *stream, int rc);
static void checkpoint_done(libxl__egc *egc,
libxl__stream_write_state *stream,
int rc);
return;
}
- if (!stream->rc)
- stream->rc = rc;
- stream_done(egc, stream);
+ stream_done(egc, stream, rc);
}
static void stream_done(libxl__egc *egc,
- libxl__stream_write_state *stream)
+ libxl__stream_write_state *stream, int rc)
{
assert(stream->running);
stream->running = false;
libxl__carefd_close(stream->emu_carefd);
free(stream->emu_body);
- check_all_finished(egc, stream, stream->rc);
+ check_all_finished(egc, stream, rc);
}
static void checkpoint_done(libxl__egc *egc,