mirror of https://github.com/xqemu/xqemu.git
block-migration: make flush_blks() return errors
This means we don't need to pass through qemu_file to get the errors. Adjust all callers. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
81fdf640e4
commit
59feec4247
|
@ -444,9 +444,10 @@ static int blk_mig_save_dirty_block(QEMUFile *f, int is_async)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void flush_blks(QEMUFile* f)
|
static int flush_blks(QEMUFile *f)
|
||||||
{
|
{
|
||||||
BlkMigBlock *blk;
|
BlkMigBlock *blk;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
DPRINTF("%s Enter submitted %d read_done %d transferred %d\n",
|
DPRINTF("%s Enter submitted %d read_done %d transferred %d\n",
|
||||||
__FUNCTION__, block_mig_state.submitted, block_mig_state.read_done,
|
__FUNCTION__, block_mig_state.submitted, block_mig_state.read_done,
|
||||||
|
@ -457,7 +458,7 @@ static void flush_blks(QEMUFile* f)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (blk->ret < 0) {
|
if (blk->ret < 0) {
|
||||||
qemu_file_set_error(f, blk->ret);
|
ret = blk->ret;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
blk_send(f, blk);
|
blk_send(f, blk);
|
||||||
|
@ -474,6 +475,7 @@ static void flush_blks(QEMUFile* f)
|
||||||
DPRINTF("%s Exit submitted %d read_done %d transferred %d\n", __FUNCTION__,
|
DPRINTF("%s Exit submitted %d read_done %d transferred %d\n", __FUNCTION__,
|
||||||
block_mig_state.submitted, block_mig_state.read_done,
|
block_mig_state.submitted, block_mig_state.read_done,
|
||||||
block_mig_state.transferred);
|
block_mig_state.transferred);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int64_t get_remaining_dirty(void)
|
static int64_t get_remaining_dirty(void)
|
||||||
|
@ -555,9 +557,7 @@ static int block_save_setup(QEMUFile *f, void *opaque)
|
||||||
/* start track dirty blocks */
|
/* start track dirty blocks */
|
||||||
set_dirty_tracking(1);
|
set_dirty_tracking(1);
|
||||||
|
|
||||||
flush_blks(f);
|
ret = flush_blks(f);
|
||||||
|
|
||||||
ret = qemu_file_get_error(f);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
blk_mig_cleanup();
|
blk_mig_cleanup();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -577,9 +577,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
|
||||||
DPRINTF("Enter save live iterate submitted %d transferred %d\n",
|
DPRINTF("Enter save live iterate submitted %d transferred %d\n",
|
||||||
block_mig_state.submitted, block_mig_state.transferred);
|
block_mig_state.submitted, block_mig_state.transferred);
|
||||||
|
|
||||||
flush_blks(f);
|
ret = flush_blks(f);
|
||||||
|
|
||||||
ret = qemu_file_get_error(f);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
blk_mig_cleanup();
|
blk_mig_cleanup();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -605,9 +603,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
flush_blks(f);
|
ret = flush_blks(f);
|
||||||
|
|
||||||
ret = qemu_file_get_error(f);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
blk_mig_cleanup();
|
blk_mig_cleanup();
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -625,9 +621,7 @@ static int block_save_complete(QEMUFile *f, void *opaque)
|
||||||
DPRINTF("Enter save live complete submitted %d transferred %d\n",
|
DPRINTF("Enter save live complete submitted %d transferred %d\n",
|
||||||
block_mig_state.submitted, block_mig_state.transferred);
|
block_mig_state.submitted, block_mig_state.transferred);
|
||||||
|
|
||||||
flush_blks(f);
|
ret = flush_blks(f);
|
||||||
|
|
||||||
ret = qemu_file_get_error(f);
|
|
||||||
if (ret) {
|
if (ret) {
|
||||||
blk_mig_cleanup();
|
blk_mig_cleanup();
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue