From 17b28b6f9f251a7ddccfd3d8d5daae7b1789bc34 Mon Sep 17 00:00:00 2001 From: Chuyan Zhang Date: Fri, 1 Dec 2023 23:28:51 -0800 Subject: fix inode write_back, fix remove --- ayafs-core/src/lib.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'ayafs-core/src/lib.rs') diff --git a/ayafs-core/src/lib.rs b/ayafs-core/src/lib.rs index db3ac28..d73619b 100644 --- a/ayafs-core/src/lib.rs +++ b/ayafs-core/src/lib.rs @@ -218,13 +218,15 @@ impl AyaFS { while let Some((inode_index, dir_entry_map)) = self.dir_entry_map.pop_lru() { debug!("writing back direntry map for inode {}", inode_index); - let mut inode = self.get_inode(inode_index).unwrap().clone(); - self.write_back_direntry( - inode_index, - &mut inode, - dir_entry_map, - ).unwrap(); - self.update_inode(inode_index, inode); + if let Some(inode) = self.get_inode(inode_index) { + let mut inode = inode.clone(); + self.write_back_direntry( + inode_index, + &mut inode, + dir_entry_map, + ).unwrap(); + self.update_inode(inode_index, inode); + } } // dir entry 的 write back 是写回到 block / inode cache 里, 所以要在前面 debug!("data_bitmap stopping at: {:?}", self.data_bitmap.peek()); -- cgit v1.2.3-70-g09d2