Revision 9499743f
b/buffered_file.c | ||
---|---|---|
150 | 150 |
if (ret < 0) { |
151 | 151 |
break; |
152 | 152 |
} |
153 |
if (s->freeze_output) |
|
154 |
migrate_fd_wait_for_unfreeze(s->migration_state); |
|
153 |
if (s->freeze_output) { |
|
154 |
ret = migrate_fd_wait_for_unfreeze(s->migration_state); |
|
155 |
if (ret < 0) { |
|
156 |
break; |
|
157 |
} |
|
158 |
} |
|
155 | 159 |
} |
156 | 160 |
|
157 | 161 |
ret2 = migrate_fd_close(s->migration_state); |
b/migration.c | ||
---|---|---|
370 | 370 |
migrate_fd_cleanup(s); |
371 | 371 |
} |
372 | 372 |
|
373 |
void migrate_fd_wait_for_unfreeze(MigrationState *s)
|
|
373 |
int migrate_fd_wait_for_unfreeze(MigrationState *s)
|
|
374 | 374 |
{ |
375 | 375 |
int ret; |
376 | 376 |
|
377 | 377 |
DPRINTF("wait for unfreeze\n"); |
378 | 378 |
if (s->state != MIG_STATE_ACTIVE) |
379 |
return; |
|
379 |
return -EINVAL;
|
|
380 | 380 |
|
381 | 381 |
do { |
382 | 382 |
fd_set wfds; |
... | ... | |
388 | 388 |
} while (ret == -1 && (s->get_error(s)) == EINTR); |
389 | 389 |
|
390 | 390 |
if (ret == -1) { |
391 |
qemu_file_set_error(s->file, -s->get_error(s));
|
|
391 |
return -s->get_error(s);
|
|
392 | 392 |
} |
393 |
return 0; |
|
393 | 394 |
} |
394 | 395 |
|
395 | 396 |
int migrate_fd_close(MigrationState *s) |
b/migration.h | ||
---|---|---|
81 | 81 |
ssize_t migrate_fd_put_buffer(MigrationState *s, const void *data, |
82 | 82 |
size_t size); |
83 | 83 |
void migrate_fd_put_ready(MigrationState *s); |
84 |
void migrate_fd_wait_for_unfreeze(MigrationState *s);
|
|
84 |
int migrate_fd_wait_for_unfreeze(MigrationState *s);
|
|
85 | 85 |
int migrate_fd_close(MigrationState *s); |
86 | 86 |
|
87 | 87 |
void add_migration_state_change_notifier(Notifier *notify); |
Also available in: Unified diff