block migration: fix return value
Modify block_save_iterate() to return positive/zero/negative (success/not done/failure) return status. The computation of the blocks transferred (an int64_t) exceeds the size of an int return value. Signed-off-by: Gary R Hook <gary.hook@nimboxx.com> Reviewed-by: ChenLiang <chenliang88@huawei.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1416958202-15913-1-git-send-email-gary.hook@nimboxx.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
99c9c3cb24
commit
ebd9fbd7e1
@ -653,6 +653,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
int64_t last_ftell = qemu_ftell(f);
|
int64_t last_ftell = qemu_ftell(f);
|
||||||
|
int64_t delta_ftell;
|
||||||
|
|
||||||
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);
|
||||||
@ -702,7 +703,14 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
|
|||||||
}
|
}
|
||||||
|
|
||||||
qemu_put_be64(f, BLK_MIG_FLAG_EOS);
|
qemu_put_be64(f, BLK_MIG_FLAG_EOS);
|
||||||
return qemu_ftell(f) - last_ftell;
|
delta_ftell = qemu_ftell(f) - last_ftell;
|
||||||
|
if (delta_ftell > 0) {
|
||||||
|
return 1;
|
||||||
|
} else if (delta_ftell < 0) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called with iothread lock taken. */
|
/* Called with iothread lock taken. */
|
||||||
|
Loading…
Reference in New Issue
Block a user