diff options
Diffstat (limited to 'src/memory/cached_block.rs')
-rw-r--r-- | src/memory/cached_block.rs | 13 |
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) |