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/memory/cached_inode.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'ayafs-core/src/memory/cached_inode.rs') diff --git a/ayafs-core/src/memory/cached_inode.rs b/ayafs-core/src/memory/cached_inode.rs index 2f26dde..70579c7 100644 --- a/ayafs-core/src/memory/cached_inode.rs +++ b/ayafs-core/src/memory/cached_inode.rs @@ -15,7 +15,7 @@ impl AyaFS { ) -> Option<(usize, &Inode)> { self.inode_bitmap.allocate().map(|inode_index| { self.get_inode_mut(inode_index).map(|inode| { - *inode = Inode::file(permissions, uid, gid, utils::time_now(), flags, 0, 0, 0); + *inode = Inode::file(permissions, uid, gid, utils::time_now(), flags, 0, 0); }); (inode_index, self.get_inode(inode_index).unwrap()) }) @@ -30,7 +30,7 @@ impl AyaFS { ) -> Option<(usize, &Inode)> { self.inode_bitmap.allocate().map(|inode_index| { self.get_inode_mut(inode_index).map(|inode| { - *inode = Inode::symlink(permissions, uid, gid, utils::time_now(), flags, 0, 0, 0); + *inode = Inode::symlink(permissions, uid, gid, utils::time_now(), flags, 0, 0); }); (inode_index, self.get_inode(inode_index).unwrap()) }) @@ -48,7 +48,7 @@ impl AyaFS { self.inode_bitmap.allocate().map(|inode_index| { // 创建 Inode let mut new_inode = - Inode::directory(permissions, uid, gid, utils::time_now(), flags, 0, 0, 0); + Inode::directory(permissions, uid, gid, utils::time_now(), flags, 0, 0); self.init_direntry_map(inode_index); self.add_direntry(inode_index, &mut new_inode, inode_index, ".", 0x2) .unwrap(); @@ -85,6 +85,7 @@ impl AyaFS { _ => return Err(EIO), } } + // self.update_inode(inode_index, Inode::empty()); self.inode_bitmap.deallocate(inode_index); Ok(true) } else { @@ -123,6 +124,7 @@ impl AyaFS { if let Some(cached_block) = self.cached_inodes.get_block_mut::(block_index) { cached_block.block.inodes[offset / INODE_SIZE] = inode; + cached_block.dirty = true; } true } else { -- cgit v1.2.3-70-g09d2