mirror of https://github.com/xqemu/xqemu.git
Monitor: Convert do_migrate() to cmd_new_ret()
While there I'm also dropping a unneeded else clause (the last one in the function). Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
053801bc49
commit
b5d17adb93
35
migration.c
35
migration.c
|
@ -54,7 +54,7 @@ void qemu_start_incoming_migration(const char *uri)
|
||||||
fprintf(stderr, "unknown migration protocol: %s\n", uri);
|
fprintf(stderr, "unknown migration protocol: %s\n", uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||||
{
|
{
|
||||||
MigrationState *s = NULL;
|
MigrationState *s = NULL;
|
||||||
const char *p;
|
const char *p;
|
||||||
|
@ -64,38 +64,43 @@ void do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||||
if (current_migration &&
|
if (current_migration &&
|
||||||
current_migration->get_status(current_migration) == MIG_STATE_ACTIVE) {
|
current_migration->get_status(current_migration) == MIG_STATE_ACTIVE) {
|
||||||
monitor_printf(mon, "migration already in progress\n");
|
monitor_printf(mon, "migration already in progress\n");
|
||||||
return;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strstart(uri, "tcp:", &p))
|
if (strstart(uri, "tcp:", &p)) {
|
||||||
s = tcp_start_outgoing_migration(mon, p, max_throttle, detach,
|
s = tcp_start_outgoing_migration(mon, p, max_throttle, detach,
|
||||||
(int)qdict_get_int(qdict, "blk"),
|
(int)qdict_get_int(qdict, "blk"),
|
||||||
(int)qdict_get_int(qdict, "inc"));
|
(int)qdict_get_int(qdict, "inc"));
|
||||||
#if !defined(WIN32)
|
#if !defined(WIN32)
|
||||||
else if (strstart(uri, "exec:", &p))
|
} else if (strstart(uri, "exec:", &p)) {
|
||||||
s = exec_start_outgoing_migration(mon, p, max_throttle, detach,
|
s = exec_start_outgoing_migration(mon, p, max_throttle, detach,
|
||||||
(int)qdict_get_int(qdict, "blk"),
|
(int)qdict_get_int(qdict, "blk"),
|
||||||
(int)qdict_get_int(qdict, "inc"));
|
(int)qdict_get_int(qdict, "inc"));
|
||||||
else if (strstart(uri, "unix:", &p))
|
} else if (strstart(uri, "unix:", &p)) {
|
||||||
s = unix_start_outgoing_migration(mon, p, max_throttle, detach,
|
s = unix_start_outgoing_migration(mon, p, max_throttle, detach,
|
||||||
(int)qdict_get_int(qdict, "blk"),
|
(int)qdict_get_int(qdict, "blk"),
|
||||||
(int)qdict_get_int(qdict, "inc"));
|
(int)qdict_get_int(qdict, "inc"));
|
||||||
else if (strstart(uri, "fd:", &p))
|
} else if (strstart(uri, "fd:", &p)) {
|
||||||
s = fd_start_outgoing_migration(mon, p, max_throttle, detach,
|
s = fd_start_outgoing_migration(mon, p, max_throttle, detach,
|
||||||
(int)qdict_get_int(qdict, "blk"),
|
(int)qdict_get_int(qdict, "blk"),
|
||||||
(int)qdict_get_int(qdict, "inc"));
|
(int)qdict_get_int(qdict, "inc"));
|
||||||
#endif
|
#endif
|
||||||
else
|
} else {
|
||||||
monitor_printf(mon, "unknown migration protocol: %s\n", uri);
|
monitor_printf(mon, "unknown migration protocol: %s\n", uri);
|
||||||
|
return -1;
|
||||||
if (s == NULL)
|
|
||||||
monitor_printf(mon, "migration failed\n");
|
|
||||||
else {
|
|
||||||
if (current_migration)
|
|
||||||
current_migration->release(current_migration);
|
|
||||||
|
|
||||||
current_migration = s;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (s == NULL) {
|
||||||
|
monitor_printf(mon, "migration failed\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (current_migration) {
|
||||||
|
current_migration->release(current_migration);
|
||||||
|
}
|
||||||
|
|
||||||
|
current_migration = s;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||||
|
|
|
@ -52,7 +52,7 @@ struct FdMigrationState
|
||||||
|
|
||||||
void qemu_start_incoming_migration(const char *uri);
|
void qemu_start_incoming_migration(const char *uri);
|
||||||
|
|
||||||
void do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data);
|
int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data);
|
||||||
|
|
||||||
int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data);
|
int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data);
|
||||||
|
|
||||||
|
|
|
@ -773,7 +773,7 @@ ETEXI
|
||||||
"shared storage with incremental copy of disk "
|
"shared storage with incremental copy of disk "
|
||||||
"(base image shared between src and destination)",
|
"(base image shared between src and destination)",
|
||||||
.user_print = monitor_user_noop,
|
.user_print = monitor_user_noop,
|
||||||
.mhandler.cmd_new = do_migrate,
|
.cmd_new_ret = do_migrate,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue