From c2d504e308eb5a531caead9fcf2c88e5794658ec Mon Sep 17 00:00:00 2001 From: Ho 229 Date: Wed, 22 May 2024 13:32:57 +0800 Subject: [PATCH] fix: dummy file attribute --- bin/ofs/src/fuse.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/bin/ofs/src/fuse.rs b/bin/ofs/src/fuse.rs index 04c9f34ed959..4115269e86d0 100644 --- a/bin/ofs/src/fuse.rs +++ b/bin/ofs/src/fuse.rs @@ -291,9 +291,8 @@ impl PathFilesystem for Fuse { .await .map_err(opendal_error2errno)?; - let metadata = Metadata::new(EntryMode::DIR); let now = SystemTime::now(); - let attr = metadata2file_attr(&metadata, now, self.uid, self.gid); + let attr = dummy_file_attr(FileType::Directory, now, self.uid, self.gid); Ok(ReplyEntry { ttl: TTL, attr }) } @@ -406,12 +405,7 @@ impl PathFilesystem for Fuse { }; let now = SystemTime::now(); - let metadata = self - .op - .stat(&path.to_string_lossy()) - .await - .map_err(opendal_error2errno)?; - let attr = metadata2file_attr(&metadata, now, self.uid, self.gid); + let attr = dummy_file_attr(FileType::RegularFile, now, self.uid, self.gid); let key = self .opened_files @@ -700,8 +694,7 @@ impl PathFilesystem for Fuse { .map_err(opendal_error2errno) }); - let relative_path_metadata = Metadata::new(EntryMode::DIR); - let relative_path_attr = metadata2file_attr(&relative_path_metadata, now, uid, gid); + let relative_path_attr = dummy_file_attr(FileType::Directory, now, uid, gid); let relative_paths = stream::iter([ Result::Ok(DirectoryEntryPlus { kind: FileType::Directory, @@ -795,10 +788,19 @@ fn metadata2file_attr(metadata: &Metadata, atime: SystemTime, uid: u32, gid: u32 let kind = entry_mode2file_type(metadata.mode()); FileAttr { size: metadata.content_length(), - blocks: 0, - atime, mtime: last_modified, ctime: last_modified, + ..dummy_file_attr(kind, atime, uid, gid) + } +} + +const fn dummy_file_attr(kind: FileType, now: SystemTime, uid: u32, gid: u32) -> FileAttr { + FileAttr { + size: 0, + blocks: 0, + atime: now, + mtime: now, + ctime: now, kind, perm: fuse3::perm_from_mode_and_kind(kind, 0o775), nlink: 0,