Revision 29ae8a41 migration.c

b/migration.c
36 36
#endif
37 37

  
38 38
enum {
39
    MIG_STATE_ERROR,
39
    MIG_STATE_ERROR = -1,
40
    MIG_STATE_NONE,
40 41
    MIG_STATE_SETUP,
41 42
    MIG_STATE_CANCELLED,
42 43
    MIG_STATE_ACTIVE,
......
63 64
MigrationState *migrate_get_current(void)
64 65
{
65 66
    static MigrationState current_migration = {
66
        .state = MIG_STATE_SETUP,
67
        .state = MIG_STATE_NONE,
67 68
        .bandwidth_limit = MAX_THROTTLE,
68 69
        .xbzrle_cache_size = DEFAULT_MIGRATE_CACHE_SIZE,
69 70
        .mbps = -1,
......
184 185
    MigrationState *s = migrate_get_current();
185 186

  
186 187
    switch (s->state) {
187
    case MIG_STATE_SETUP:
188
    case MIG_STATE_NONE:
188 189
        /* no migration has happened ever */
189 190
        break;
191
    case MIG_STATE_SETUP:
192
        info->has_status = true;
193
        info->status = g_strdup("setup");
194
        break;
190 195
    case MIG_STATE_ACTIVE:
191 196
        info->has_status = true;
192 197
        info->status = g_strdup("active");
......
257 262
    MigrationState *s = migrate_get_current();
258 263
    MigrationCapabilityStatusList *cap;
259 264

  
260
    if (s->state == MIG_STATE_ACTIVE) {
265
    if (s->state == MIG_STATE_ACTIVE || s->state == MIG_STATE_SETUP) {
261 266
        error_set(errp, QERR_MIGRATION_ACTIVE);
262 267
        return;
263 268
    }
......
392 397
    params.blk = blk;
393 398
    params.shared = inc;
394 399

  
395
    if (s->state == MIG_STATE_ACTIVE) {
400
    if (s->state == MIG_STATE_ACTIVE || s->state == MIG_STATE_SETUP) {
396 401
        error_set(errp, QERR_MIGRATION_ACTIVE);
397 402
        return;
398 403
    }
......
542 547
    DPRINTF("beginning savevm\n");
543 548
    qemu_savevm_state_begin(s->file, &s->params);
544 549

  
550
    migrate_set_state(s, MIG_STATE_SETUP, MIG_STATE_ACTIVE);
551

  
545 552
    while (s->state == MIG_STATE_ACTIVE) {
546 553
        int64_t current_time;
547 554
        uint64_t pending_size;
......
632 639

  
633 640
void migrate_fd_connect(MigrationState *s)
634 641
{
635
    s->state = MIG_STATE_ACTIVE;
636
    trace_migrate_set_state(MIG_STATE_ACTIVE);
642
    s->state = MIG_STATE_SETUP;
643
    trace_migrate_set_state(MIG_STATE_SETUP);
637 644

  
638 645
    /* This is a best 1st approximation. ns to ms */
639 646
    s->expected_downtime = max_downtime/1000000;

Also available in: Unified diff