[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/5] Factorize common migration incoming code
From: |
Juan Quintela |
Subject: |
[Qemu-devel] [PATCH 2/5] Factorize common migration incoming code |
Date: |
Tue, 25 May 2010 16:21:02 +0200 |
Signed-off-by: Juan Quintela <address@hidden>
---
migration-exec.c | 14 +-------------
migration-fd.c | 14 +-------------
migration-tcp.c | 15 ++-------------
migration-unix.c | 15 ++-------------
migration.c | 13 +++++++++++++
migration.h | 2 ++
6 files changed, 21 insertions(+), 52 deletions(-)
diff --git a/migration-exec.c b/migration-exec.c
index 5435827..07af11a 100644
--- a/migration-exec.c
+++ b/migration-exec.c
@@ -111,20 +111,8 @@ err_after_alloc:
static void exec_accept_incoming_migration(void *opaque)
{
QEMUFile *f = opaque;
- int ret;
- ret = qemu_loadvm_state(f);
- if (ret < 0) {
- fprintf(stderr, "load of migration failed\n");
- goto err;
- }
- qemu_announce_self();
- DPRINTF("successfully loaded vm state\n");
-
- if (autostart)
- vm_start();
-
-err:
+ process_incoming_migration(f);
qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL);
qemu_fclose(f);
}
diff --git a/migration-fd.c b/migration-fd.c
index 0abd372..6d14505 100644
--- a/migration-fd.c
+++ b/migration-fd.c
@@ -104,20 +104,8 @@ err_after_alloc:
static void fd_accept_incoming_migration(void *opaque)
{
QEMUFile *f = opaque;
- int ret;
- ret = qemu_loadvm_state(f);
- if (ret < 0) {
- fprintf(stderr, "load of migration failed\n");
- goto err;
- }
- qemu_announce_self();
- DPRINTF("successfully loaded vm state\n");
-
- if (autostart)
- vm_start();
-
-err:
+ process_incoming_migration(f);
qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL);
qemu_fclose(f);
}
diff --git a/migration-tcp.c b/migration-tcp.c
index 95ce722..20f2e37 100644
--- a/migration-tcp.c
+++ b/migration-tcp.c
@@ -143,7 +143,7 @@ static void tcp_accept_incoming_migration(void *opaque)
socklen_t addrlen = sizeof(addr);
int s = (unsigned long)opaque;
QEMUFile *f;
- int c, ret;
+ int c;
do {
c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen);
@@ -162,18 +162,7 @@ static void tcp_accept_incoming_migration(void *opaque)
goto out;
}
- ret = qemu_loadvm_state(f);
- if (ret < 0) {
- fprintf(stderr, "load of migration failed\n");
- goto out_fopen;
- }
- qemu_announce_self();
- DPRINTF("successfully loaded vm state\n");
-
- if (autostart)
- vm_start();
-
-out_fopen:
+ process_incoming_migration(f);
qemu_fclose(f);
out:
qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
diff --git a/migration-unix.c b/migration-unix.c
index 49de1b9..57232c0 100644
--- a/migration-unix.c
+++ b/migration-unix.c
@@ -149,7 +149,7 @@ static void unix_accept_incoming_migration(void *opaque)
socklen_t addrlen = sizeof(addr);
int s = (unsigned long)opaque;
QEMUFile *f;
- int c, ret;
+ int c;
do {
c = qemu_accept(s, (struct sockaddr *)&addr, &addrlen);
@@ -168,18 +168,7 @@ static void unix_accept_incoming_migration(void *opaque)
goto out;
}
- ret = qemu_loadvm_state(f);
- if (ret < 0) {
- fprintf(stderr, "load of migration failed\n");
- goto out_fopen;
- }
- qemu_announce_self();
- DPRINTF("successfully loaded vm state\n");
-
- if (autostart)
- vm_start();
-
-out_fopen:
+ process_incoming_migration(f);
qemu_fclose(f);
out:
qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
diff --git a/migration.c b/migration.c
index 9c1d4b6..c388902 100644
--- a/migration.c
+++ b/migration.c
@@ -58,6 +58,19 @@ int qemu_start_incoming_migration(const char *uri)
return ret;
}
+void process_incoming_migration(QEMUFile *f)
+{
+ if (qemu_loadvm_state(f) < 0) {
+ fprintf(stderr, "load of migration failed\n");
+ exit(0);
+ }
+ qemu_announce_self();
+ DPRINTF("successfully loaded vm state\n");
+
+ if (autostart)
+ vm_start();
+}
+
int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
{
MigrationState *s = NULL;
diff --git a/migration.h b/migration.h
index dd423a1..017e9c3 100644
--- a/migration.h
+++ b/migration.h
@@ -50,6 +50,8 @@ struct FdMigrationState
void *opaque;
};
+void process_incoming_migration(QEMUFile *f);
+
int qemu_start_incoming_migration(const char *uri);
int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data);
--
1.6.6.1
- [Qemu-devel] [PATCH v2 0/5] Add QMP migration events, Juan Quintela, 2010/05/25
- [Qemu-devel] [PATCH 2/5] Factorize common migration incoming code,
Juan Quintela <=
- [Qemu-devel] [PATCH 3/5] QMP: Introduce MIGRATION events, Juan Quintela, 2010/05/25
- Re: [Qemu-devel] [PATCH 3/5] QMP: Introduce MIGRATION events, Anthony Liguori, 2010/05/25
- [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Juan Quintela, 2010/05/25
- Re: [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Daniel P. Berrange, 2010/05/25
- [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Anthony Liguori, 2010/05/25
- Re: [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Daniel P. Berrange, 2010/05/25
- [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Juan Quintela, 2010/05/25
- [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Anthony Liguori, 2010/05/25
- [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Luiz Capitulino, 2010/05/25
- [Qemu-devel] Re: [PATCH 3/5] QMP: Introduce MIGRATION events, Juan Quintela, 2010/05/25