Large/small file I/O test passed.
This commit is contained in:
parent
8713046a4a
commit
5787214ef6
6 changed files with 67 additions and 16 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue