Revision ceb2bd09 block-migration.c
b/block-migration.c | ||
---|---|---|
429 | 429 |
return 0; |
430 | 430 |
} |
431 | 431 |
|
432 |
/* return value: |
|
433 |
* 0: too much data for max_downtime |
|
434 |
* 1: few enough data for max_downtime |
|
435 |
*/ |
|
432 | 436 |
static int blk_mig_save_dirty_block(QEMUFile *f, int is_async) |
433 | 437 |
{ |
434 | 438 |
BlkMigDevState *bmds; |
435 |
int ret = 0;
|
|
439 |
int ret = 1;
|
|
436 | 440 |
|
437 | 441 |
QSIMPLEQ_FOREACH(bmds, &block_mig_state.bmds_list, entry) { |
438 |
if (mig_save_device_dirty(f, bmds, is_async) == 0) {
|
|
439 |
ret = 1;
|
|
442 |
ret = mig_save_device_dirty(f, bmds, is_async);
|
|
443 |
if (ret == 0) {
|
|
440 | 444 |
break; |
441 | 445 |
} |
442 | 446 |
} |
... | ... | |
596 | 600 |
block_mig_state.bulk_completed = 1; |
597 | 601 |
} |
598 | 602 |
} else { |
599 |
if (blk_mig_save_dirty_block(f, 1) == 0) {
|
|
603 |
if (blk_mig_save_dirty_block(f, 1) != 0) {
|
|
600 | 604 |
/* no more dirty blocks */ |
601 | 605 |
break; |
602 | 606 |
} |
... | ... | |
633 | 637 |
all async read completed */ |
634 | 638 |
assert(block_mig_state.submitted == 0); |
635 | 639 |
|
636 |
while (blk_mig_save_dirty_block(f, 0) != 0) {
|
|
640 |
while (blk_mig_save_dirty_block(f, 0) == 0) {
|
|
637 | 641 |
/* Do nothing */ |
638 | 642 |
} |
639 | 643 |
blk_mig_cleanup(); |
Also available in: Unified diff