File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -327,14 +327,20 @@ fn snapshot_memory_to_file(
327
327
let mut file = OpenOptions :: new ( )
328
328
. write ( true )
329
329
. create ( true )
330
- . truncate ( true )
331
330
. open ( mem_file_path)
332
331
. map_err ( |e| MemoryBackingFile ( "open" , e) ) ?;
333
332
334
- // Set the length of the file to the full size of the memory area.
335
333
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
+ }
338
344
339
345
match snapshot_type {
340
346
SnapshotType :: Diff => {
You can’t perform that action at this time.
0 commit comments