diff --git a/vmm/src/memory_manager.rs b/vmm/src/memory_manager.rs index 9b0955510..31519c7b2 100644 --- a/vmm/src/memory_manager.rs +++ b/vmm/src/memory_manager.rs @@ -519,7 +519,9 @@ impl MemoryManager { let path_ptr = path.as_mut_ptr() as *mut _; let fd = unsafe { libc::mkstemp(path_ptr) }; unsafe { libc::unlink(path_ptr) }; - unsafe { File::from_raw_fd(fd) } + let f = unsafe { File::from_raw_fd(fd) }; + f.set_len(size as u64).map_err(Error::SharedFileSetLen)?; + f } else { OpenOptions::new() .read(true) @@ -528,8 +530,6 @@ impl MemoryManager { .map_err(Error::SharedFileCreate)? }; - f.set_len(size as u64).map_err(Error::SharedFileSetLen)?; - let mut mmap_flags = if copy_on_write { libc::MAP_NORESERVE | libc::MAP_PRIVATE } else {