From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54085) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WDyFs-0001RE-Cy for qemu-devel@nongnu.org; Thu, 13 Feb 2014 10:31:18 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WDyFn-0008T6-Cs for qemu-devel@nongnu.org; Thu, 13 Feb 2014 10:31:12 -0500 Received: from mx1.redhat.com ([209.132.183.28]:58965) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WDyFn-0008Su-4q for qemu-devel@nongnu.org; Thu, 13 Feb 2014 10:31:07 -0500 From: Luiz Capitulino Date: Thu, 13 Feb 2014 10:30:19 -0500 Message-Id: <1392305440-30465-2-git-send-email-lcapitulino@redhat.com> In-Reply-To: <1392305440-30465-1-git-send-email-lcapitulino@redhat.com> References: <1392305440-30465-1-git-send-email-lcapitulino@redhat.com> Subject: [Qemu-devel] [PULL 01/22] hmp: migrate command (without -d) now blocks correctly List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: peter.maydell@linaro.org Cc: qemu-devel@nongnu.org, anthony@codemonkey.ws From: Soramichi AKIYAMA This patch fixes a timing issue that migrate command (without -d) does not block in some cases. The original version of hmp.c:hmp_migrate_status_cb checks if the migration status is 'active' or not to detect the completion of a migration. However, if this function is executed when the migration status is stil 'setup' (the status before 'active'), migration command returns immediately even if the user does not specify -d option. Signed-off-by: Soramichi Akiyama Signed-off-by: Luiz Capitulino --- hmp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hmp.c b/hmp.c index 1af0809..081c121 100644 --- a/hmp.c +++ b/hmp.c @@ -1234,7 +1234,8 @@ static void hmp_migrate_status_cb(void *opaque) MigrationInfo *info; info = qmp_query_migrate(NULL); - if (!info->has_status || strcmp(info->status, "active") == 0) { + if (!info->has_status || strcmp(info->status, "active") == 0 || + strcmp(info->status, "setup") == 0) { if (info->has_disk) { int progress; -- 1.8.1.4