Skip to content

Commit f3b8fa6

Browse files
committed
allow writing snapshot on top of existing files
Signed-off-by: Ives van Hoorne <[email protected]>
1 parent b6d6f71 commit f3b8fa6

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/vmm/src/persist.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -327,14 +327,20 @@ fn snapshot_memory_to_file(
327327
let mut file = OpenOptions::new()
328328
.write(true)
329329
.create(true)
330-
.truncate(true)
331330
.open(mem_file_path)
332331
.map_err(|e| MemoryBackingFile("open", e))?;
333332

334-
// Set the length of the file to the full size of the memory area.
335333
let mem_size_mib = mem_size_mib(vmm.guest_memory());
336-
file.set_len((mem_size_mib * 1024 * 1024) as u64)
337-
.map_err(|e| MemoryBackingFile("set_length", e))?;
334+
let expected_size = (mem_size_mib * 1024 * 1024) as u64;
335+
let file_size = file
336+
.metadata()
337+
.map_err(|e| MemoryBackingFile("get_metadata", e))?
338+
.len();
339+
if file_size != expected_size {
340+
// Set the length of the file to the full size of the memory area.
341+
file.set_len(expected_size)
342+
.map_err(|e| MemoryBackingFile("set_length", e))?;
343+
}
338344

339345
match snapshot_type {
340346
SnapshotType::Diff => {

0 commit comments

Comments
 (0)