[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-1.4 stable v2 3/3] block-migration: fix bloc
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH for-1.4 stable v2 3/3] block-migration: fix block_save_iterate() return value |
Date: |
Mon, 11 Feb 2013 11:17:49 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 |
Il 10/02/2013 23:12, Stefan Hajnoczi ha scritto:
> The .save_live_iterate() function returns 0 to continue iterating or 1
> to stop iterating.
>
> Since 16310a3cca7320edb9341c976f7819de0a8c27e0 it only ever returns 0,
> leading to an infinite loop.
>
> Return 1 if we have finished sending dirty blocks.
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
> block-migration.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/block-migration.c b/block-migration.c
> index a91d96b..bcd0039 100644
> --- a/block-migration.c
> +++ b/block-migration.c
> @@ -582,7 +582,12 @@ static int block_save_iterate(QEMUFile *f, void *opaque)
>
> qemu_put_be64(f, BLK_MIG_FLAG_EOS);
>
> - return 0;
> + /* Complete when bulk transfer is done and all dirty blocks have been
> + * transferred.
> + */
> + return block_mig_state.bulk_completed &&
> + block_mig_state.submitted == 0 &&
> + block_mig_state.read_done == 0;
> }
>
> static int block_save_complete(QEMUFile *f, void *opaque)
>
Reviewed-by: Paolo Bonzini <address@hidden>