From c9083c787cd908669168376cc1936c14e234915f Mon Sep 17 00:00:00 2001 From: LI Qing Date: Wed, 22 Sep 2021 14:38:12 +0800 Subject: [PATCH] Fix the return error code of file operations --- src/libos/src/fs/inode_file.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/libos/src/fs/inode_file.rs b/src/libos/src/fs/inode_file.rs index 1ede1130..202b8364 100644 --- a/src/libos/src/fs/inode_file.rs +++ b/src/libos/src/fs/inode_file.rs @@ -14,7 +14,7 @@ pub struct INodeFile { impl File for INodeFile { fn read(&self, buf: &mut [u8]) -> Result { if !self.access_mode.readable() { - return_errno!(EACCES, "File not readable"); + return_errno!(EBADF, "File not readable"); } let mut offset = self.offset.lock().unwrap(); let len = self.inode.read_at(*offset, buf).map_err(|e| errno!(e))?; @@ -24,7 +24,7 @@ impl File for INodeFile { fn write(&self, buf: &[u8]) -> Result { if !self.access_mode.writable() { - return_errno!(EACCES, "File not writable"); + return_errno!(EBADF, "File not writable"); } let mut offset = self.offset.lock().unwrap(); if self.status_flags.read().unwrap().always_append() { @@ -38,7 +38,7 @@ impl File for INodeFile { fn read_at(&self, offset: usize, buf: &mut [u8]) -> Result { if !self.access_mode.readable() { - return_errno!(EACCES, "File not readable"); + return_errno!(EBADF, "File not readable"); } let len = self.inode.read_at(offset, buf)?; Ok(len) @@ -46,7 +46,7 @@ impl File for INodeFile { fn write_at(&self, offset: usize, buf: &[u8]) -> Result { if !self.access_mode.writable() { - return_errno!(EACCES, "File not writable"); + return_errno!(EBADF, "File not writable"); } let len = self.inode.write_at(offset, buf)?; Ok(len) @@ -54,7 +54,7 @@ impl File for INodeFile { fn readv(&self, bufs: &mut [&mut [u8]]) -> Result { if !self.access_mode.readable() { - return_errno!(EACCES, "File not readable"); + return_errno!(EBADF, "File not readable"); } let mut offset = self.offset.lock().unwrap(); let mut total_len = 0; @@ -73,7 +73,7 @@ impl File for INodeFile { fn writev(&self, bufs: &[&[u8]]) -> Result { if !self.access_mode.writable() { - return_errno!(EACCES, "File not writable"); + return_errno!(EBADF, "File not writable"); } let mut offset = self.offset.lock().unwrap(); if self.status_flags.read().unwrap().always_append() { @@ -138,7 +138,7 @@ impl File for INodeFile { fn set_len(&self, len: u64) -> Result<()> { if !self.access_mode.writable() { - return_errno!(EACCES, "File not writable. Can't set len."); + return_errno!(EBADF, "File not writable. Can't set len."); } self.inode.resize(len as usize)?; Ok(()) @@ -156,7 +156,7 @@ impl File for INodeFile { fn iterate_entries(&self, writer: &mut dyn DirentWriter) -> Result { if !self.access_mode.readable() { - return_errno!(EACCES, "File not readable. Can't read entry."); + return_errno!(EBADF, "File not readable. Can't read entry."); } let mut offset = self.offset.lock().unwrap(); let mut dir_ctx = DirentWriterContext::new(*offset, writer);