Large/small file I/O test passed.

This commit is contained in:
Yifan Wu 2020-12-19 19:14:31 +08:00
parent 8713046a4a
commit 5787214ef6
6 changed files with 67 additions and 16 deletions

View file

@ -12,7 +12,6 @@ use alloc::sync::Arc;
use alloc::string::String;
use alloc::vec::Vec;
use spin::{Mutex, MutexGuard};
use crate::layout::DiskInodeType::Directory;
pub struct Inode {
inode_id: u32,
@ -196,4 +195,15 @@ impl Inode {
disk_inode.write_at(offset, buf, &self.block_device)
})
}
pub fn clear(&self) {
let mut fs = self.fs.lock();
let mut inode = self.get_disk_inode(&mut fs);
let data_blocks_dealloc = inode.modify(|disk_inode| {
disk_inode.clear_size(&self.block_device)
});
for data_block in data_blocks_dealloc.into_iter() {
fs.dealloc_data(data_block);
}
}
}