From 8a45cd95353ae9fe1286dbc4fcd36faaa66c9f82 Mon Sep 17 00:00:00 2001 From: Chuyan Zhang Date: Sun, 19 Nov 2023 01:03:19 -0800 Subject: Layer 1 test not passing --- src/main.rs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index e01d352..a5ec616 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,8 @@ mod block_device; mod disk; -mod memory; mod filesystem; +mod memory; +mod tests; mod utils; use clap::Parser; @@ -12,12 +13,14 @@ use std::num::NonZeroUsize; use std::sync::Arc; use std::time::Duration; -use memory::cached_block::CachedBlock; -use disk::data_block::DataBlock; +use crate::disk::block::InodeBlock; use crate::disk::inode::InodeMode; -use block_device::{BLOCK_SIZE, BlockDevice, memory_disk::MemoryDisk}; +use crate::memory::cached_block::BlockCache; +use block_device::{memory_disk::MemoryDisk, BlockDevice, BLOCK_SIZE}; use disk::bitmap::Bitmap; +use disk::block::DataBlock; use disk::inode::INODE_SIZE; +use memory::cached_block::CachedBlock; use users::{get_current_gid, get_current_uid}; #[derive(Parser, Debug)] @@ -61,8 +64,10 @@ struct AyaFS { inode_start_block: usize, data_start_block: usize, - // cached_inodes: LruCache, - cached_blocks: LruCache>, + cached_inodes: BlockCache, + cached_blocks: BlockCache, + // cached_inodes: LruCache>, + // cached_blocks: LruCache>, } impl AyaFS { @@ -103,7 +108,7 @@ impl AyaFS { let _ = inode_bitmap.allocate().unwrap(); // inode block 0 is not usable let mut fs = Self { - device, + device: device.clone(), data_bitmap, inode_bitmap, inode_start_block: data_bitmap_block_number + inode_bitmap_block_number + 1, @@ -111,8 +116,10 @@ impl AyaFS { + inode_bitmap_block_number + inode_block_number + 1, + cached_inodes: BlockCache::new(device.clone(), 256), + cached_blocks: BlockCache::new(device.clone(), 256), // cached_inodes: LruCache::new(NonZeroUsize::new(256).unwrap()), - cached_blocks: LruCache::new(NonZeroUsize::new(256).unwrap()), + // cached_blocks: LruCache::new(NonZeroUsize::new(256).unwrap()), }; fs.create_inode( @@ -137,7 +144,7 @@ fn main() { MountOption::AutoUnmount, MountOption::AllowRoot, ]; - let mem_disk = Arc::new(MemoryDisk::new()); + let mem_disk = Arc::new(MemoryDisk::new(16384)); let filesystem = AyaFS::new(mem_disk, 16384); fuser::mount2(filesystem, mount_point, &options).unwrap(); -- cgit v1.2.3-70-g09d2