From 7a440bcd676b7cfa26dea3b78376eb067a052158 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 5 Jul 2025 16:59:08 +0200 Subject: [PATCH] Merge close and on_close scheme calls --- src/context/file.rs | 2 +- src/scheme/mod.rs | 3 --- src/scheme/user.rs | 11 ++++------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/context/file.rs b/src/context/file.rs index 8f1d34c100..452e1d5526 100644 --- a/src/context/file.rs +++ b/src/context/file.rs @@ -78,7 +78,7 @@ impl FileDescription { .ok_or(Error::new(EBADF))? .clone(); - scheme.on_close(self.number) + scheme.close(self.number) } } diff --git a/src/scheme/mod.rs b/src/scheme/mod.rs index 2fcc1da087..a974835a03 100644 --- a/src/scheme/mod.rs +++ b/src/scheme/mod.rs @@ -484,9 +484,6 @@ pub trait KernelScheme: Send + Sync + 'static { fn close(&self, id: usize) -> Result<()> { Ok(()) } - fn on_close(&self, id: usize) -> Result<()> { - self.close(id) - } fn kcall( &self, id: usize, diff --git a/src/scheme/user.rs b/src/scheme/user.rs index e6198eb1df..c9882824b7 100644 --- a/src/scheme/user.rs +++ b/src/scheme/user.rs @@ -1494,15 +1494,12 @@ impl KernelScheme for UserScheme { Ok(()) } - fn close(&self, file: usize) -> Result<()> { - let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?; - inner.call(Opcode::Close, [file], &mut PageSpan::empty())?; - Ok(()) - } - fn on_close(&self, id: usize) -> Result<()> { + fn close(&self, id: usize) -> Result<()> { let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?; if !inner.supports_on_close { - return self.close(id); + let inner = self.inner.upgrade().ok_or(Error::new(ENODEV))?; + inner.call(Opcode::Close, [id], &mut PageSpan::empty())?; + return Ok(()); } inner.todo.send(Sqe {