diff options
author | Juan Quintela <quintela@redhat.com> | 2022-06-21 13:20:35 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2023-02-11 16:51:09 +0100 |
commit | 51efd36faf2553d9f311cece14198c2ba7ece991 (patch) | |
tree | 2a35dbebd7bf6e02fcc6afb232de715d6e0f9ab9 /migration | |
parent | c40c0463413b941c13fe5f99a90c02d7d6584828 (diff) |
migration: Simplify ram_find_and_save_block()
We will need later that find_dirty_block() return errors, so
simplify the loop.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r-- | migration/ram.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/migration/ram.c b/migration/ram.c index b966e148c2..dd809fec1f 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -2542,7 +2542,6 @@ static int ram_find_and_save_block(RAMState *rs) { PageSearchStatus *pss = &rs->pss[RAM_CHANNEL_PRECOPY]; int pages = 0; - bool again, found; /* No dirty page as there is zero RAM */ if (!ram_bytes_total()) { @@ -2564,18 +2563,17 @@ static int ram_find_and_save_block(RAMState *rs) pss_init(pss, rs->last_seen_block, rs->last_page); do { - again = true; - found = get_queued_page(rs, pss); - - if (!found) { + if (!get_queued_page(rs, pss)) { /* priority queue empty, so just search for something dirty */ - found = find_dirty_block(rs, pss, &again); - } - - if (found) { - pages = ram_save_host_page(rs, pss); + bool again = true; + if (!find_dirty_block(rs, pss, &again)) { + if (!again) { + break; + } + } } - } while (!pages && again); + pages = ram_save_host_page(rs, pss); + } while (!pages); rs->last_seen_block = pss->block; rs->last_page = pss->page; |