summaryrefslogtreecommitdiff
path: root/arch_init.c
diff options
context:
space:
mode:
authorLei Li <lilei@linux.vnet.ibm.com>2013-09-04 17:02:36 +0800
committerJuan Quintela <quintela@trasno.org>2013-09-24 13:22:08 +0200
commit6cd0beda2c3c21fd7575e944764f392be7ef50c1 (patch)
tree597415c45703c777d46a7801908a36c197fe905d /arch_init.c
parentc77a5f2daa1ccbd825d59b95c70207c0a196bb94 (diff)
downloadqemu-6cd0beda2c3c21fd7575e944764f392be7ef50c1.tar.gz
arch_init: right return for ram_save_iterate
qemu_file_rate_limit() never return negative value since the refactor by Commit 1964a39, this patch gets rid of the negative check for it, adjust bytes_transferred and return value correspondingly in ram_save_iterate(). Signed-off-by: Lei Li <lilei@linux.vnet.ibm.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'arch_init.c')
-rw-r--r--arch_init.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch_init.c b/arch_init.c
index e47e1399bb..18cd9a1f11 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -710,15 +710,20 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
*/
ram_control_after_iterate(f, RAM_CONTROL_ROUND);
+ bytes_transferred += total_sent;
+
+ /*
+ * Do not count these 8 bytes into total_sent, so that we can
+ * return 0 if no page had been dirtied.
+ */
+ qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
+ bytes_transferred += 8;
+
+ ret = qemu_file_get_error(f);
if (ret < 0) {
- bytes_transferred += total_sent;
return ret;
}
- qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
- total_sent += 8;
- bytes_transferred += total_sent;
-
return total_sent;
}