diff --git a/src/vmm/src/persist.rs b/src/vmm/src/persist.rs index ef2769d0e0e..9558efba589 100644 --- a/src/vmm/src/persist.rs +++ b/src/vmm/src/persist.rs @@ -249,7 +249,13 @@ fn snapshot_memory_to_file( .dump_dirty(&mut file, &dirty_bitmap) .map_err(Memory) } - SnapshotType::Full => vmm.guest_memory().dump(&mut file).map_err(Memory), + SnapshotType::Full => { + let dirty_bitmap = vmm.get_dirty_bitmap().map_err(DirtyBitmap)?; + vmm.guest_memory() + .dump_dirty(&mut file, &dirty_bitmap) + .map_err(Memory) + } + }?; file.flush() .map_err(|err| MemoryBackingFile("flush", err))?;