From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=33632 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ORF3t-00029B-N1 for qemu-devel@nongnu.org; Tue, 22 Jun 2010 21:47:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1ORF3s-0006hx-F3 for qemu-devel@nongnu.org; Tue, 22 Jun 2010 21:47:33 -0400 Received: from mail-gx0-f173.google.com ([209.85.161.173]:33605) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1ORF3s-0006hr-8H for qemu-devel@nongnu.org; Tue, 22 Jun 2010 21:47:32 -0400 Received: by gxk27 with SMTP id 27so118034gxk.4 for ; Tue, 22 Jun 2010 18:47:31 -0700 (PDT) Message-ID: <4C2167B1.4020407@codemonkey.ws> Date: Tue, 22 Jun 2010 20:47:29 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v3 1/5] Exit if incoming migration fails References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juan Quintela Cc: qemu-devel@nongnu.org On 06/09/2010 07:10 AM, Juan Quintela wrote: > Signed-off-by: Juan Quintela > Applied 1&2 as we discussed. Thanks. Regards, Anthony Liguori > --- > migration.c | 16 ++++++++++------ > migration.h | 2 +- > vl.c | 7 ++++++- > 3 files changed, 17 insertions(+), 8 deletions(-) > > diff --git a/migration.c b/migration.c > index fbf2339..ecc67f1 100644 > --- a/migration.c > +++ b/migration.c > @@ -36,22 +36,26 @@ static uint32_t max_throttle = (32<< 20); > > static MigrationState *current_migration; > > -void qemu_start_incoming_migration(const char *uri) > +int qemu_start_incoming_migration(const char *uri) > { > const char *p; > + int ret; > > if (strstart(uri, "tcp:",&p)) > - tcp_start_incoming_migration(p); > + ret = tcp_start_incoming_migration(p); > #if !defined(WIN32) > else if (strstart(uri, "exec:",&p)) > - exec_start_incoming_migration(p); > + ret = exec_start_incoming_migration(p); > else if (strstart(uri, "unix:",&p)) > - unix_start_incoming_migration(p); > + ret = unix_start_incoming_migration(p); > else if (strstart(uri, "fd:",&p)) > - fd_start_incoming_migration(p); > + ret = fd_start_incoming_migration(p); > #endif > - else > + else { > fprintf(stderr, "unknown migration protocol: %s\n", uri); > + ret = -EPROTONOSUPPORT; > + } > + return ret; > } > > int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) > diff --git a/migration.h b/migration.h > index 97eef4a..e048bb2 100644 > --- a/migration.h > +++ b/migration.h > @@ -50,7 +50,7 @@ struct FdMigrationState > void *opaque; > }; > > -void qemu_start_incoming_migration(const char *uri); > +int qemu_start_incoming_migration(const char *uri); > > int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data); > > diff --git a/vl.c b/vl.c > index 7121cd0..c35b46e 100644 > --- a/vl.c > +++ b/vl.c > @@ -3826,7 +3826,12 @@ int main(int argc, char **argv, char **envp) > } > > if (incoming) { > - qemu_start_incoming_migration(incoming); > + int ret = qemu_start_incoming_migration(incoming); > + if (ret< 0) { > + fprintf(stderr, "Migration failed. Exit code %s(%d), exiting.\n", > + incoming, ret); > + exit(ret); > + } > } else if (autostart) { > vm_start(); > } >