diff --git a/kernel/src/task/task.rs b/kernel/src/task/task.rs index 7807c3c7..6ce91ce0 100644 --- a/kernel/src/task/task.rs +++ b/kernel/src/task/task.rs @@ -691,30 +691,6 @@ impl Task { } } - fn resolve_dentry(&self, dentry: Arc) -> SysResult> { - const MAX_RESOLVE_LINK_DEPTH: usize = 40; - let mut dentry_it = dentry; - for _ in 0..MAX_RESOLVE_LINK_DEPTH { - if dentry_it.is_negetive() { - return Ok(dentry_it); - } - match dentry_it.inode()?.itype() { - InodeType::SymLink => { - let path = block_on(async { dentry_it.open()?.readlink_string().await })?; - let path = if is_absolute_path(&path) { - Path::new(sys_root_dentry(), sys_root_dentry(), &path) - } else { - Path::new(sys_root_dentry(), dentry_it.parent().unwrap(), &path) - }; - let new_dentry = path.walk(OpenFlags::empty())?; - dentry_it = new_dentry; - } - _ => return Ok(dentry_it), - } - } - Err(SysError::ELOOP) - } - /// Given a path, absolute or relative, will find. pub fn resolve_path(&self, path: &str) -> SysResult> { let dentry = self.at_helper(AtFd::FdCwd, path, OpenFlags::empty())?; diff --git a/modules/vfs/src/procfs/self_.rs b/modules/vfs/src/procfs/self_.rs index 0c0143fa..3f2754e3 100644 --- a/modules/vfs/src/procfs/self_.rs +++ b/modules/vfs/src/procfs/self_.rs @@ -126,6 +126,6 @@ impl File for ExeFile { } buf[0..exe.len()].copy_from_slice(exe.as_bytes()); buf[exe.len()] = '\0' as u8; - Ok(exe.len() + 1) + Ok(exe.len()) } }