mirror of https://gitee.com/openkylin/qemu.git
migration: fix detached migration with fd
Migration with fd uses s->mon to pass the fd. But we only assign the s->mon for !detached migration. Fix it. Once there add a comment indicating that s->mon has two uses. Bug reported by: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Juan Quintela <quintela@redhat.com> CC: Wen Congyang <wency@cn.fujitsu.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
f2338fb48a
commit
1299c63168
12
migration.c
12
migration.c
|
@ -155,7 +155,6 @@ MigrationInfo *qmp_query_migrate(Error **errp)
|
||||||
|
|
||||||
static void migrate_fd_monitor_suspend(MigrationState *s, Monitor *mon)
|
static void migrate_fd_monitor_suspend(MigrationState *s, Monitor *mon)
|
||||||
{
|
{
|
||||||
s->mon = mon;
|
|
||||||
if (monitor_suspend(mon) == 0) {
|
if (monitor_suspend(mon) == 0) {
|
||||||
DPRINTF("suspending monitor\n");
|
DPRINTF("suspending monitor\n");
|
||||||
} else {
|
} else {
|
||||||
|
@ -383,7 +382,12 @@ static MigrationState *migrate_init(Monitor *mon, int detach, int blk, int inc)
|
||||||
s->bandwidth_limit = bandwidth_limit;
|
s->bandwidth_limit = bandwidth_limit;
|
||||||
s->blk = blk;
|
s->blk = blk;
|
||||||
s->shared = inc;
|
s->shared = inc;
|
||||||
s->mon = NULL;
|
|
||||||
|
/* s->mon is used for two things:
|
||||||
|
- pass fd in fd migration
|
||||||
|
- suspend/resume monitor for not detached migration
|
||||||
|
*/
|
||||||
|
s->mon = mon;
|
||||||
s->bandwidth_limit = bandwidth_limit;
|
s->bandwidth_limit = bandwidth_limit;
|
||||||
s->state = MIG_STATE_SETUP;
|
s->state = MIG_STATE_SETUP;
|
||||||
|
|
||||||
|
@ -435,6 +439,10 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (detach) {
|
||||||
|
s->mon = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
notifier_list_notify(&migration_state_notifiers, s);
|
notifier_list_notify(&migration_state_notifiers, s);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue