Patchwork [36/41] block-migration: make flush_blks() return errors

login
register
mail settings
Submitter Juan Quintela
Date Sept. 21, 2012, 8:47 a.m.
Message ID <1348217255-22441-37-git-send-email-quintela@redhat.com>
Download mbox | patch
Permalink /patch/185623/
State New
Headers show

Comments

Juan Quintela - Sept. 21, 2012, 8:47 a.m.
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>
---
 block-migration.c | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)
Paolo Bonzini - Sept. 21, 2012, 12:50 p.m.
Il 21/09/2012 10:47, Juan Quintela ha scritto:
> 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>
> ---
>  block-migration.c | 22 ++++++++--------------
>  1 file changed, 8 insertions(+), 14 deletions(-)
> 
> diff --git a/block-migration.c b/block-migration.c
> index 7def8ab..a822bb2 100644
> --- a/block-migration.c
> +++ b/block-migration.c
> @@ -444,9 +444,10 @@ static int blk_mig_save_dirty_block(QEMUFile *f, int is_async)
>      return ret;
>  }
> 
> -static void flush_blks(QEMUFile* f)
> +static int flush_blks(QEMUFile *f)
>  {
>      BlkMigBlock *blk;
> +    int ret = 0;
> 
>      DPRINTF("%s Enter submitted %d read_done %d transferred %d\n",
>              __FUNCTION__, block_mig_state.submitted, block_mig_state.read_done,
> @@ -457,7 +458,7 @@ static void flush_blks(QEMUFile* f)
>              break;
>          }
>          if (blk->ret < 0) {
> -            qemu_file_set_error(f, blk->ret);
> +            ret = blk->ret;
>              break;
>          }
>          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__,
>              block_mig_state.submitted, block_mig_state.read_done,
>              block_mig_state.transferred);
> +    return ret;
>  }
> 
>  static int64_t get_remaining_dirty(void)
> @@ -553,9 +555,7 @@ static int block_save_setup(QEMUFile *f, void *opaque)
>      /* start track dirty blocks */
>      set_dirty_tracking(1);
> 
> -    flush_blks(f);
> -
> -    ret = qemu_file_get_error(f);
> +    ret = flush_blks(f);
>      if (ret) {
>          blk_mig_cleanup();
>          return ret;
> @@ -575,9 +575,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
>      DPRINTF("Enter save live iterate submitted %d transferred %d\n",
>              block_mig_state.submitted, block_mig_state.transferred);
> 
> -    flush_blks(f);
> -
> -    ret = qemu_file_get_error(f);
> +    ret = flush_blks(f);
>      if (ret) {
>          blk_mig_cleanup();
>          return ret;
> @@ -603,9 +601,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
>          }
>      }
> 
> -    flush_blks(f);
> -
> -    ret = qemu_file_get_error(f);
> +    ret = flush_blks(f);
>      if (ret) {
>          blk_mig_cleanup();
>          return ret;
> @@ -623,9 +619,7 @@ static int block_save_complete(QEMUFile *f, void *opaque)
>      DPRINTF("Enter save live complete submitted %d transferred %d\n",
>              block_mig_state.submitted, block_mig_state.transferred);
> 
> -    flush_blks(f);
> -
> -    ret = qemu_file_get_error(f);
> +    ret = flush_blks(f);
>      if (ret) {
>          blk_mig_cleanup();
>          return ret;
> 

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

Patch

diff --git a/block-migration.c b/block-migration.c
index 7def8ab..a822bb2 100644
--- a/block-migration.c
+++ b/block-migration.c
@@ -444,9 +444,10 @@  static int blk_mig_save_dirty_block(QEMUFile *f, int is_async)
     return ret;
 }

-static void flush_blks(QEMUFile* f)
+static int flush_blks(QEMUFile *f)
 {
     BlkMigBlock *blk;
+    int ret = 0;

     DPRINTF("%s Enter submitted %d read_done %d transferred %d\n",
             __FUNCTION__, block_mig_state.submitted, block_mig_state.read_done,
@@ -457,7 +458,7 @@  static void flush_blks(QEMUFile* f)
             break;
         }
         if (blk->ret < 0) {
-            qemu_file_set_error(f, blk->ret);
+            ret = blk->ret;
             break;
         }
         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__,
             block_mig_state.submitted, block_mig_state.read_done,
             block_mig_state.transferred);
+    return ret;
 }

 static int64_t get_remaining_dirty(void)
@@ -553,9 +555,7 @@  static int block_save_setup(QEMUFile *f, void *opaque)
     /* start track dirty blocks */
     set_dirty_tracking(1);

-    flush_blks(f);
-
-    ret = qemu_file_get_error(f);
+    ret = flush_blks(f);
     if (ret) {
         blk_mig_cleanup();
         return ret;
@@ -575,9 +575,7 @@  static int block_save_iterate(QEMUFile *f, void *opaque)
     DPRINTF("Enter save live iterate submitted %d transferred %d\n",
             block_mig_state.submitted, block_mig_state.transferred);

-    flush_blks(f);
-
-    ret = qemu_file_get_error(f);
+    ret = flush_blks(f);
     if (ret) {
         blk_mig_cleanup();
         return ret;
@@ -603,9 +601,7 @@  static int block_save_iterate(QEMUFile *f, void *opaque)
         }
     }

-    flush_blks(f);
-
-    ret = qemu_file_get_error(f);
+    ret = flush_blks(f);
     if (ret) {
         blk_mig_cleanup();
         return ret;
@@ -623,9 +619,7 @@  static int block_save_complete(QEMUFile *f, void *opaque)
     DPRINTF("Enter save live complete submitted %d transferred %d\n",
             block_mig_state.submitted, block_mig_state.transferred);

-    flush_blks(f);
-
-    ret = qemu_file_get_error(f);
+    ret = flush_blks(f);
     if (ret) {
         blk_mig_cleanup();
         return ret;