summaryrefslogtreecommitdiff
path: root/ayafs-core/src/memory/cached_inode.rs
diff options
context:
space:
mode:
authorChuyan Zhang <me@zcy.moe>2023-12-01 19:42:13 -0800
committerChuyan Zhang <me@zcy.moe>2023-12-01 19:42:13 -0800
commit4c34414b26bf71e747ea3ecb2586645bab4aba52 (patch)
treeb569935a94c7fb3e0a23a19207f6545b4d7719c3 /ayafs-core/src/memory/cached_inode.rs
parentfd125947c9db0b33761414e65e919f73d9bf1815 (diff)
downloadmyfs-4c34414b26bf71e747ea3ecb2586645bab4aba52.tar.gz
myfs-4c34414b26bf71e747ea3ecb2586645bab4aba52.zip
Multiple bugfix, it works!
Diffstat (limited to 'ayafs-core/src/memory/cached_inode.rs')
-rw-r--r--ayafs-core/src/memory/cached_inode.rs8
1 files changed, 5 insertions, 3 deletions
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::<InodeBlock>(block_index)
{
cached_block.block.inodes[offset / INODE_SIZE] = inode;
+ cached_block.dirty = true;
}
true
} else {