From patchwork Sat Feb 9 18:01:59 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [for-1.4, stable, 3/3] block-migration: fix block_save_iterate() return value Date: Sat, 09 Feb 2013 08:01:59 -0000 From: Stefan Hajnoczi X-Patchwork-Id: 219415 Message-Id: <1360432919-1379-4-git-send-email-stefanha@redhat.com> To: Cc: Anthony Liguori , david.pravec@nethost.cz, Juan Quintela , Michael Roth , Stefan Hajnoczi , Paolo Bonzini The .save_live_iterate() function returns 0 it 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 Reviewed-by: Juan Quintela --- block-migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block-migration.c b/block-migration.c index a91d96b..e9bc200 100644 --- a/block-migration.c +++ b/block-migration.c @@ -582,7 +582,7 @@ static int block_save_iterate(QEMUFile *f, void *opaque) qemu_put_be64(f, BLK_MIG_FLAG_EOS); - return 0; + return get_remaining_dirty() == 0; } static int block_save_complete(QEMUFile *f, void *opaque)