diff options
Diffstat (limited to 'ayafs-core/src/lib.rs')
-rw-r--r-- | ayafs-core/src/lib.rs | 16 |
1 files changed, 9 insertions, 7 deletions
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()); |