1016
case MIGRATION_STATUS_DEVICE:
1017
case MIGRATION_STATUS_WAIT_UNPLUG:
1018
case MIGRATION_STATUS_CANCELLING:
1019
+ case MIGRATION_STATUS_FAILING:
1020
case MIGRATION_STATUS_COLO:
1021
return true;
1022
default:
1159
case MIGRATION_STATUS_POSTCOPY_PAUSED:
1160
case MIGRATION_STATUS_POSTCOPY_RECOVER_SETUP:
1161
case MIGRATION_STATUS_POSTCOPY_RECOVER:
1162
+ case MIGRATION_STATUS_FAILING:
1163
/* TODO add some postcopy stats */
1164
populate_time_info(info, s);
1165
populate_ram_info(info, s);
1212
case MIGRATION_STATUS_POSTCOPY_PAUSED:
1213
case MIGRATION_STATUS_POSTCOPY_RECOVER:
1214
case MIGRATION_STATUS_FAILED:
1215
+ case MIGRATION_STATUS_FAILING:
1216
case MIGRATION_STATUS_COLO:
1217
info->has_status = true;
1218
break;
1333
if (s->state == MIGRATION_STATUS_CANCELLING) {
1334
migrate_set_state(&s->state, MIGRATION_STATUS_CANCELLING,
1335
MIGRATION_STATUS_CANCELLED);
1336
+ } else if (s->state == MIGRATION_STATUS_FAILING) {
1337
+ migrate_set_state(&s->state, MIGRATION_STATUS_FAILING,
1338
+ MIGRATION_STATUS_FAILED);
1339
}
1340
1341
/*
1393
1394
switch (current) {
1395
case MIGRATION_STATUS_SETUP:
1390
- next = MIGRATION_STATUS_FAILED;
1396
+ next = MIGRATION_STATUS_FAILING;
1397
break;
1398
1399
case MIGRATION_STATUS_POSTCOPY_PAUSED:
1407
break;
1408
1409
case MIGRATION_STATUS_CANCELLING:
1410
+ case MIGRATION_STATUS_FAILING:
1411
/*
1405
- * Don't move out of CANCELLING, the only valid transition is to
1406
- * CANCELLED, at migration_cleanup().
1412
+ * Keep the current state, next transition is to be done
1413
+ * in migration_cleanup().
1414
*/
1415
break;
1416
1560
{
1561
return (s->state == MIGRATION_STATUS_CANCELLING ||
1562
s->state == MIGRATION_STATUS_CANCELLED ||
1563
+ s->state == MIGRATION_STATUS_FAILING ||
1564
s->state == MIGRATION_STATUS_FAILED);
1565
}
1566
2487
if (postcopy_preempt_establish_channel(ms)) {
2488
if (ms->state != MIGRATION_STATUS_CANCELLING) {
2489
migrate_set_state(&ms->state, ms->state,
2482
- MIGRATION_STATUS_FAILED);
2490
+ MIGRATION_STATUS_FAILING);
2491
}
2492
error_setg(errp, "%s: Failed to establish preempt channel",
2493
__func__);
2650
qemu_fclose(fb);
2651
fail:
2652
if (ms->state != MIGRATION_STATUS_CANCELLING) {
2645
- migrate_set_state(&ms->state, ms->state, MIGRATION_STATUS_FAILED);
2653
+ migrate_set_state(&ms->state, ms->state, MIGRATION_STATUS_FAILING);
2654
}
2655
bql_unlock();
2656
return -1;
2841
}
2842
2843
if (s->state != MIGRATION_STATUS_CANCELLING) {
2836
- migrate_set_state(&s->state, s->state, MIGRATION_STATUS_FAILED);
2844
+ migrate_set_state(&s->state, s->state, MIGRATION_STATUS_FAILING);
2845
}
2846
}
2847
2878
2879
fail:
2880
migrate_set_state(&s->state, current_active_state,
2873
- MIGRATION_STATUS_FAILED);
2881
+ MIGRATION_STATUS_FAILING);
2882
}
2883
2884
typedef enum MigThrError {
3079
* For precopy (or postcopy with error outside IO, or before dest
3080
* starts), we fail with no time.
3081
*/
3074
- migrate_set_state(&s->state, state, MIGRATION_STATUS_FAILED);
3082
+ migrate_set_state(&s->state, state, MIGRATION_STATUS_FAILING);
3083
trace_migration_thread_file_err();
3084
3085
/* Time to stop the migration, now. */
3310
migrate_start_colo_process(s);
3311
s->vm_old_state = RUN_STATE_RUNNING;
3312
/* Fallthrough */
3305
- case MIGRATION_STATUS_FAILED:
3313
+ case MIGRATION_STATUS_FAILING:
3314
case MIGRATION_STATUS_CANCELLED:
3315
case MIGRATION_STATUS_CANCELLING:
3316
if (!migration_block_activate(&local_err)) {
3376
switch (s->state) {
3377
case MIGRATION_STATUS_COMPLETED:
3378
case MIGRATION_STATUS_ACTIVE:
3371
- case MIGRATION_STATUS_FAILED:
3379
+ case MIGRATION_STATUS_FAILING:
3380
case MIGRATION_STATUS_CANCELLED:
3381
case MIGRATION_STATUS_CANCELLING:
3382
break;
3561
if (ret) {
3562
migrate_error_propagate(s, local_err);
3563
migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE,
3556
- MIGRATION_STATUS_FAILED);
3564
+ MIGRATION_STATUS_FAILING);
3565
goto out;
3566
}
3567
3753
/* local_err is guaranteed to be set when reaching here */
3754
migrate_error_propagate(s, local_err);
3755
migrate_set_state(&s->state, MIGRATION_STATUS_ACTIVE,
3748
- MIGRATION_STATUS_FAILED);
3756
+ MIGRATION_STATUS_FAILING);
3757
3758
done:
3759
bg_migration_iteration_finish(s);