multifd: Make sure that we don't do any IO after an error
Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
4a589960c5
commit
56eb10bb62
62
multifd-Make-sure-that-we-don-t-do-any-IO-after-an-e.patch
Normal file
62
multifd-Make-sure-that-we-don-t-do-any-IO-after-an-e.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
From 3db288bbddb730960430fb4907e100f19001ca0a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ying Fang <fangying1@huawei.com>
|
||||||
|
Date: Wed, 2 Dec 2020 14:31:07 +0800
|
||||||
|
Subject: [PATCH] multifd: Make sure that we don't do any IO after an error
|
||||||
|
|
||||||
|
Signed-off-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
---
|
||||||
|
migration/ram.c | 22 +++++++++++++---------
|
||||||
|
1 file changed, 13 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/migration/ram.c b/migration/ram.c
|
||||||
|
index 3ded38c0be..b74929542d 100644
|
||||||
|
--- a/migration/ram.c
|
||||||
|
+++ b/migration/ram.c
|
||||||
|
@@ -3617,7 +3617,7 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
|
||||||
|
{
|
||||||
|
RAMState **temp = opaque;
|
||||||
|
RAMState *rs = *temp;
|
||||||
|
- int ret;
|
||||||
|
+ int ret = 0;
|
||||||
|
int i;
|
||||||
|
int64_t t0;
|
||||||
|
int done = 0;
|
||||||
|
@@ -3686,12 +3686,14 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
|
||||||
|
ram_control_after_iterate(f, RAM_CONTROL_ROUND);
|
||||||
|
|
||||||
|
out:
|
||||||
|
- multifd_send_sync_main(rs);
|
||||||
|
- qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
|
||||||
|
- qemu_fflush(f);
|
||||||
|
- ram_counters.transferred += 8;
|
||||||
|
+ if (ret >= 0) {
|
||||||
|
+ multifd_send_sync_main(rs);
|
||||||
|
+ qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
|
||||||
|
+ qemu_fflush(f);
|
||||||
|
+ ram_counters.transferred += 8;
|
||||||
|
|
||||||
|
- ret = qemu_file_get_error(f);
|
||||||
|
+ ret = qemu_file_get_error(f);
|
||||||
|
+ }
|
||||||
|
if (ret < 0) {
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@@ -3745,9 +3747,11 @@ static int ram_save_complete(QEMUFile *f, void *opaque)
|
||||||
|
|
||||||
|
rcu_read_unlock();
|
||||||
|
|
||||||
|
- multifd_send_sync_main(rs);
|
||||||
|
- qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
|
||||||
|
- qemu_fflush(f);
|
||||||
|
+ if (ret >= 0) {
|
||||||
|
+ multifd_send_sync_main(rs);
|
||||||
|
+ qemu_put_be64(f, RAM_SAVE_FLAG_EOS);
|
||||||
|
+ qemu_fflush(f);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user