From bddb87a11b8b49d1908cfb5ff5f7bc150d62ade0 Mon Sep 17 00:00:00 2001 From: "Hui, Chunyang" Date: Tue, 9 Jun 2020 07:14:42 +0000 Subject: [PATCH] Fix stat for symbolic file --- src/libos/src/fs/file_ops/stat.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libos/src/fs/file_ops/stat.rs b/src/libos/src/fs/file_ops/stat.rs index ef5b1c69..e7121213 100644 --- a/src/libos/src/fs/file_ops/stat.rs +++ b/src/libos/src/fs/file_ops/stat.rs @@ -135,8 +135,14 @@ impl From for Stat { } fn do_stat(path: &str) -> Result { - warn!("stat is partial implemented as lstat"); - do_lstat(path) + debug!("stat: path: {}", path); + let inode = { + let current = current!(); + let fs = current.fs().lock().unwrap(); + fs.lookup_inode_follow(&path)? + }; + let stat = Stat::from(inode.metadata()?); + Ok(stat) } pub fn do_fstat(fd: u32) -> Result {