diff --git a/src/scheme.rs b/src/scheme.rs
index 24f5915730ca8d8a12512a278d00deaef7567c38..0315d03e70d4e684baa0dc7ae8e13d854b4fb5b1 100644
--- a/src/scheme.rs
+++ b/src/scheme.rs
@@ -239,7 +239,7 @@ pub trait SchemeAsync {
         Err(Error::new(EBADF))
     }
 
-    async fn read(&self, id: usize, buf: &mut [u8], offset: u64, fcntl_flags: u32, ctx: &CallerCtx) -> Result<usize> {
+    async fn read(&mut self, id: usize, buf: &mut [u8], offset: u64, fcntl_flags: u32, ctx: &CallerCtx) -> Result<usize> {
         Err(Error::new(EBADF))
     }
 
@@ -326,12 +326,10 @@ pub trait SchemeSync {
         Err(Error::new(EBADF))
     }
 
-
-    fn read(&self, id: usize, buf: &mut [u8], offset: u64, fcntl_flags: u32, ctx: &CallerCtx) -> Result<usize> {
+    fn read(&mut self, id: usize, buf: &mut [u8], offset: u64, fcntl_flags: u32, ctx: &CallerCtx) -> Result<usize> {
         Err(Error::new(EBADF))
     }
 
-
     fn write(&mut self, id: usize, buf: &[u8], offset: u64, fcntl_flags: u32, ctx: &CallerCtx) -> Result<usize> {
         Err(Error::new(EBADF))
     }