Skip to content

Commit 62db03e

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

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
@@ -328,14 +328,20 @@ fn snapshot_memory_to_file(
328328
let mut file = OpenOptions::new()
329329
.write(true)
330330
.create(true)
331-
.truncate(true)
332331
.open(mem_file_path)
333332
.map_err(|e| MemoryBackingFile("open", e))?;
334333

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

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

0 commit comments

Comments
 (0)