summaryrefslogtreecommitdiff
path: root/ayafs-core/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ayafs-core/src/lib.rs')
-rw-r--r--ayafs-core/src/lib.rs16
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());