a7b9285
From a52c9450418c1a03aebbd95216fbd177430e2fc7 Mon Sep 17 00:00:00 2001
Alon Levy 408bdb5
From: Paolo Bonzini <pbonzini@redhat.com>
Alon Levy 408bdb5
Date: Fri, 22 Feb 2013 17:36:11 +0100
a7b9285
Subject: [PATCH] block-migration: remove useless calls to blk_mig_cleanup
Alon Levy 408bdb5
Alon Levy 408bdb5
Now that the cancel callback is called consistently for all errors,
Alon Levy 408bdb5
we can avoid doing its work in the other callbacks.
Alon Levy 408bdb5
Alon Levy 408bdb5
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Alon Levy 408bdb5
Reviewed-by: Juan Quintela <quintela@redhat.com>
Alon Levy 408bdb5
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Alon Levy 408bdb5
Signed-off-by: Juan Quintela <quintela@redhat.com>
a7b9285
(cherry picked from commit d418cf57a3e699746ef0bfa772bbe8c7e17cebb5)
Alon Levy 408bdb5
---
Alon Levy 408bdb5
 block-migration.c | 26 ++++++++------------------
Alon Levy 408bdb5
 1 file changed, 8 insertions(+), 18 deletions(-)
Alon Levy 408bdb5
Alon Levy 408bdb5
diff --git a/block-migration.c b/block-migration.c
Alon Levy 408bdb5
index 43ab202..e6c917d 100644
Alon Levy 408bdb5
--- a/block-migration.c
Alon Levy 408bdb5
+++ b/block-migration.c
Alon Levy 408bdb5
@@ -524,16 +524,10 @@ static int block_save_setup(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
     set_dirty_tracking(1);
Alon Levy 408bdb5
 
Alon Levy 408bdb5
     ret = flush_blks(f);
Alon Levy 408bdb5
-    if (ret) {
Alon Levy 408bdb5
-        blk_mig_cleanup();
Alon Levy 408bdb5
-        return ret;
Alon Levy 408bdb5
-    }
Alon Levy 408bdb5
-
Alon Levy 408bdb5
     blk_mig_reset_dirty_cursor();
Alon Levy 408bdb5
-
Alon Levy 408bdb5
     qemu_put_be64(f, BLK_MIG_FLAG_EOS);
Alon Levy 408bdb5
 
Alon Levy 408bdb5
-    return 0;
Alon Levy 408bdb5
+    return ret;
Alon Levy 408bdb5
 }
Alon Levy 408bdb5
 
Alon Levy 408bdb5
 static int block_save_iterate(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
@@ -546,7 +540,6 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
 
Alon Levy 408bdb5
     ret = flush_blks(f);
Alon Levy 408bdb5
     if (ret) {
Alon Levy 408bdb5
-        blk_mig_cleanup();
Alon Levy 408bdb5
         return ret;
Alon Levy 408bdb5
     }
Alon Levy 408bdb5
 
Alon Levy 408bdb5
@@ -564,20 +557,18 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
             }
Alon Levy 408bdb5
         } else {
Alon Levy 408bdb5
             ret = blk_mig_save_dirty_block(f, 1);
Alon Levy 408bdb5
+            if (ret < 0) {
Alon Levy 408bdb5
+                return ret;
Alon Levy 408bdb5
+            }
Alon Levy 408bdb5
             if (ret != 0) {
Alon Levy 408bdb5
                 /* no more dirty blocks */
Alon Levy 408bdb5
                 break;
Alon Levy 408bdb5
             }
Alon Levy 408bdb5
         }
Alon Levy 408bdb5
     }
Alon Levy 408bdb5
-    if (ret < 0) {
Alon Levy 408bdb5
-        blk_mig_cleanup();
Alon Levy 408bdb5
-        return ret;
Alon Levy 408bdb5
-    }
Alon Levy 408bdb5
 
Alon Levy 408bdb5
     ret = flush_blks(f);
Alon Levy 408bdb5
     if (ret) {
Alon Levy 408bdb5
-        blk_mig_cleanup();
Alon Levy 408bdb5
         return ret;
Alon Levy 408bdb5
     }
Alon Levy 408bdb5
 
Alon Levy 408bdb5
@@ -595,7 +586,6 @@ static int block_save_complete(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
 
Alon Levy 408bdb5
     ret = flush_blks(f);
Alon Levy 408bdb5
     if (ret) {
Alon Levy 408bdb5
-        blk_mig_cleanup();
Alon Levy 408bdb5
         return ret;
Alon Levy 408bdb5
     }
Alon Levy 408bdb5
 
Alon Levy 408bdb5
@@ -607,12 +597,11 @@ static int block_save_complete(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
 
Alon Levy 408bdb5
     do {
Alon Levy 408bdb5
         ret = blk_mig_save_dirty_block(f, 0);
Alon Levy 408bdb5
+        if (ret < 0) {
Alon Levy 408bdb5
+            return ret;
Alon Levy 408bdb5
+        }
Alon Levy 408bdb5
     } while (ret == 0);
Alon Levy 408bdb5
 
Alon Levy 408bdb5
-    blk_mig_cleanup();
Alon Levy 408bdb5
-    if (ret < 0) {
Alon Levy 408bdb5
-        return ret;
Alon Levy 408bdb5
-    }
Alon Levy 408bdb5
     /* report completion */
Alon Levy 408bdb5
     qemu_put_be64(f, (100 << BDRV_SECTOR_BITS) | BLK_MIG_FLAG_PROGRESS);
Alon Levy 408bdb5
 
Alon Levy 408bdb5
@@ -620,6 +609,7 @@ static int block_save_complete(QEMUFile *f, void *opaque)
Alon Levy 408bdb5
 
Alon Levy 408bdb5
     qemu_put_be64(f, BLK_MIG_FLAG_EOS);
Alon Levy 408bdb5
 
Alon Levy 408bdb5
+    blk_mig_cleanup();
Alon Levy 408bdb5
     return 0;
Alon Levy 408bdb5
 }
Alon Levy 408bdb5