feat(filesystem): 引入Umount系统调用 (#719)

* feat(filesystem): 引入Umount系统调用

* 将所有ENOSYS误用更正

* 修复了一个使同一个挂载点可以挂载2个文件系统的bug

* 统一注释,增强程序稳定性,统一接口。注意:Umount时在fatfs的路径要使用大写,此受限于当前文件系统设计。
This commit is contained in:
Samuel Dai
2024-04-15 13:02:04 +08:00
committed by GitHub
parent ceeb2e943c
commit 1074eb34e7
46 changed files with 1274 additions and 463 deletions

View File

@ -413,7 +413,7 @@ impl IndexNode for LockedPipeInode {
}
fn list(&self) -> Result<alloc::vec::Vec<alloc::string::String>, SystemError> {
return Err(SystemError::EOPNOTSUPP_OR_ENOTSUP);
return Err(SystemError::ENOSYS);
}
fn poll(&self, private_data: &FilePrivateData) -> Result<usize, SystemError> {

View File

@ -36,7 +36,7 @@ impl Signal {
// 如果并无进程与指定的 pid 相匹配,那么 kill() 调用失败,同时将 errno 置为 ESRCH“查无此进程”
if pid.lt(&Pid::from(0)) {
kwarn!("Kill operation not support: pid={:?}", pid);
return Err(SystemError::EOPNOTSUPP_OR_ENOTSUP);
return Err(SystemError::ENOSYS);
}
compiler_fence(core::sync::atomic::Ordering::SeqCst);
// 检查sig是否符合要求如果不符合要求则退出。

View File

@ -262,7 +262,7 @@ impl Syscall {
// 暂不支持巨页
if shmflg.contains(ShmFlags::SHM_HUGETLB) {
kerror!("shmget: not support huge page");
return Err(SystemError::EOPNOTSUPP_OR_ENOTSUP);
return Err(SystemError::ENOSYS);
}
let mut shm_manager_guard = shm_manager_lock();