修改RamFS目前存在的BUG (#354)

* 修改RamFS目前存在的BUG
This commit is contained in:
GnoCiYeH 2023-08-31 19:52:32 +08:00 committed by GitHub
parent c757940bd6
commit a3ef8f8ad5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -114,6 +114,33 @@ impl RamFS {
}
impl IndexNode for LockedRamFSInode {
fn truncate(&self, len: usize) -> Result<(), SystemError> {
let mut inode = self.0.lock();
//如果是文件夹,则报错
if inode.metadata.file_type == FileType::Dir {
return Err(SystemError::EINVAL);
}
//当前文件长度大于_len才进行截断否则不操作
if inode.data.len() > len {
inode.data.resize(len, 0);
}
return Ok(());
}
fn close(&self, _data: &mut FilePrivateData) -> Result<(), SystemError> {
return Ok(());
}
fn open(
&self,
_data: &mut FilePrivateData,
_mode: &super::vfs::file::FileMode,
) -> Result<(), SystemError> {
return Ok(());
}
fn read_at(
&self,
offset: usize,