From d89290472f23cdc115bda546a20724079f48838f Mon Sep 17 00:00:00 2001 From: Alex Lyn Date: Thu, 18 Jun 2026 11:31:47 +0800 Subject: [PATCH] runtime-rs: Fix file_mode in copyfile to preserve permissions The file_mode field in CopyFileRequest was set to only the type flag (S_IFDIR or S_IFREG) without permission bits, causing files and directories copied to the guest to lose their original permissions. Use metadata.mode() instead which includes both type and permission bits. Signed-off-by: Alex Lyn --- src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs b/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs index 0bc8051430..54d411aa08 100644 --- a/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs +++ b/src/runtime-rs/crates/resource/src/volume/share_fs_volume.rs @@ -846,7 +846,7 @@ async fn copy_dir_recursively>( uid: metadata.uid() as i32, gid: metadata.gid() as i32, dir_mode: metadata.mode(), - file_mode: SFlag::S_IFDIR.bits(), + file_mode: metadata.mode(), data: vec![], ..Default::default() }; @@ -879,7 +879,7 @@ async fn copy_dir_recursively>( file_size: metadata.len() as i64, uid: metadata.uid() as i32, gid: metadata.gid() as i32, - file_mode: SFlag::S_IFREG.bits(), + file_mode: metadata.mode(), data: buffer, ..Default::default() };