From 4c34414b26bf71e747ea3ecb2586645bab4aba52 Mon Sep 17 00:00:00 2001 From: Chuyan Zhang Date: Fri, 1 Dec 2023 19:42:13 -0800 Subject: Multiple bugfix, it works! --- ayafs-core/src/utils/mod.rs | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'ayafs-core/src/utils/mod.rs') diff --git a/ayafs-core/src/utils/mod.rs b/ayafs-core/src/utils/mod.rs index 468ebdb..d73cb3e 100644 --- a/ayafs-core/src/utils/mod.rs +++ b/ayafs-core/src/utils/mod.rs @@ -1,4 +1,3 @@ -mod constants; pub mod permissions; use crate::block_device::BLOCK_SIZE; @@ -7,6 +6,8 @@ use crate::{AyaFS, INODE_PER_BLOCK}; use fuser::{FileAttr, FileType}; use std::time::{Duration, SystemTime, UNIX_EPOCH}; +// pub(crate) const ANON_INODE_FS_MAGIC: libc::__fsword_t = 0x09041934; + pub(crate) fn time_now() -> u32 { SystemTime::now() .duration_since(UNIX_EPOCH) @@ -25,16 +26,6 @@ pub(crate) fn to_systime(time: u32) -> SystemTime { UNIX_EPOCH + Duration::from_secs(time as u64) } -// File type code, one of: -// 0x0 Unknown. -// 0x1 Regular file. -// 0x2 Directory. -// 0x3 Character device file. -// 0x4 Block device file. -// 0x5 FIFO. -// 0x6 Socket. -// 0x7 Symbolic link. - pub(crate) fn from_filetype(file_type: FileType) -> u8 { match file_type { FileType::NamedPipe => 0x5, @@ -85,7 +76,7 @@ impl AyaFS { /// 输入 inode 编号, 返回它对应的 block number 和 block 内 offset pub(crate) fn locate_inode(&self, inode_index: usize) -> (usize, usize) { let block_number = - inode_index / INODE_PER_BLOCK + 1 + self.inode_bitmap.length + self.data_bitmap.length; + inode_index / INODE_PER_BLOCK; // + 1 + self.inode_bitmap.length + self.data_bitmap.length; let block_offset = inode_index % INODE_PER_BLOCK * INODE_SIZE; (block_number, block_offset) } -- cgit v1.2.3-70-g09d2