summaryrefslogtreecommitdiff
path: root/src/memory/cached_block.rs
diff options
context:
space:
mode:
authorChuyan Zhang <me@zcy.moe>2023-11-29 03:29:34 -0800
committerChuyan Zhang <me@zcy.moe>2023-11-29 03:29:34 -0800
commit7af0771f9a3031acc36a6990d07bdb92a61c0c75 (patch)
tree3db3c79b8d385bc949c8486d97def8dadd4323e6 /src/memory/cached_block.rs
parentceb83a7214000ccd048857b40cc0ebfc54290731 (diff)
downloadmyfs-7af0771f9a3031acc36a6990d07bdb92a61c0c75.tar.gz
myfs-7af0771f9a3031acc36a6990d07bdb92a61c0c75.zip
symlink, probably not working
Diffstat (limited to 'src/memory/cached_block.rs')
-rw-r--r--src/memory/cached_block.rs13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/memory/cached_block.rs b/src/memory/cached_block.rs
index 002a75b..c3d0338 100644
--- a/src/memory/cached_block.rs
+++ b/src/memory/cached_block.rs
@@ -1,9 +1,6 @@
use crate::block_device::{BlockDevice, BLOCK_SIZE};
use crate::disk::block::Block;
-use crate::disk::inode::Inode;
use crate::AyaFS;
-use and_then_some::BoolExt;
-use log::debug;
use lru::LruCache;
use std::num::NonZeroUsize;
use std::sync::Arc;
@@ -15,12 +12,6 @@ pub struct CachedBlock<T: Block> {
pub dirty: bool,
}
-impl<T: Block> CachedBlock<T> {
- fn cast<U: Block>(&self) -> CachedBlock<U> {
- unsafe { std::mem::transmute_copy(&self) }
- }
-}
-
pub fn convert_mut<U: Block, T: Block>(input_block: &mut CachedBlock<U>) -> &mut CachedBlock<T> {
let ptr = input_block as *const CachedBlock<U> as *mut u8;
let block = ptr.cast::<CachedBlock<T>>();
@@ -108,11 +99,13 @@ impl<T: Block> BlockCache<T> {
}
}
+ #[allow(unused)]
/// 从 LRU cache 中读取一个 block 的引用, *不会* 影响 LRU cache 的结构, 如果没有在 cache 中不会加载.
pub(crate) fn peek_block<U: Block>(&self, index: usize) -> Option<&CachedBlock<U>> {
self.cache.peek(&index).map(convert::<T, U>)
}
+ #[allow(unused)]
/// 从 LRU cache 中读取一个 block 的可变引用, *不会* 影响 LRU cache 的结构, 如果没有在 cache 中不会加载.
pub(crate) fn peek_block_mut<U: Block>(&mut self, index: usize) -> Option<&mut CachedBlock<U>> {
self.cache.peek_mut(&index).map(convert_mut::<T, U>)
@@ -165,6 +158,7 @@ impl AyaFS {
// 返回 None 当且仅当 data_bitmap 中这个 block 为 invalid
}
+ #[allow(unused)]
pub(crate) fn peek_block<T: Block>(&self, index: usize) -> Option<&CachedBlock<T>> {
self.data_bitmap
.query(index)
@@ -172,6 +166,7 @@ impl AyaFS {
// 返回 None 当且仅当 data_bitmap 中这个 block 为 invalid
}
+ #[allow(unused)]
pub(crate) fn peek_block_mut<T: Block>(&mut self, index: usize) -> Option<&mut CachedBlock<T>> {
self.data_bitmap
.query(index)