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)
|
||||
{
|
||||
s->mon = mon;
|
||||
if (monitor_suspend(mon) == 0) {
|
||||
DPRINTF("suspending monitor\n");
|
||||
} else {
|
||||
@ -383,7 +382,12 @@ static MigrationState *migrate_init(Monitor *mon, int detach, int blk, int inc)
|
||||
s->bandwidth_limit = bandwidth_limit;
|
||||
s->blk = blk;
|
||||
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->state = MIG_STATE_SETUP;
|
||||
|
||||
@ -435,6 +439,10 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (detach) {
|
||||
s->mon = NULL;
|
||||
}
|
||||
|
||||
notifier_list_notify(&migration_state_notifiers, s);
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user