qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 1/5] Exit if incoming migration fails


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH v3 1/5] Exit if incoming migration fails
Date: Tue, 22 Jun 2010 20:47:29 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100423 Lightning/1.0b1 Thunderbird/3.0.4

On 06/09/2010 07:10 AM, Juan Quintela wrote:
Signed-off-by: Juan Quintela<address@hidden>

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();
      }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]