This commit is contained in:
Olivier 'reivilibre' 2022-01-22 11:28:17 +00:00
parent b23202f39a
commit 05def61ee6
2 changed files with 29 additions and 11 deletions

View File

@ -493,7 +493,6 @@ impl Filesystem for OliveFilesystem {
// TODO(performance): we could easily do this async (just respond Ok now, drop the buffers
// and schedule the message in the background).
let requester = self.requester.clone();
let buffers = self.buffers.clone();
let file_handle: u32 = fh.try_into().unwrap();
// TODO flush(): do we need to do anything about this?
@ -502,7 +501,6 @@ impl Filesystem for OliveFilesystem {
async move {
match requester.release(file_handle).await? {
DataResponse::Success(()) => {
buffers.dir_handles.write().await.remove(&file_handle);
reply.ok();
}
DataResponse::Error { code, message } => {
@ -513,7 +511,7 @@ impl Filesystem for OliveFilesystem {
Ok(())
},
"releasedir",
"release",
);
}

View File

@ -38,14 +38,34 @@ pub struct OpenMode {
#[derive(Serialize, Deserialize, Debug, Clone)]
/// Sent by the client on any data stream.
pub enum DataCommand {
GetAttr { vnode: VnodeId },
OpenDir { vnode: VnodeId },
ReadDir { dir_handle: u32 },
ReleaseDir { dir_handle: u32 },
Lookup { dir_vnode: VnodeId, name: String },
OpenFile { vnode: VnodeId, mode: OpenMode },
ReleaseFile { file_handle: u32 },
ReadFile { file_handle: u32, offset: i64, size: u32 },
GetAttr {
vnode: VnodeId,
},
OpenDir {
vnode: VnodeId,
},
ReadDir {
dir_handle: u32,
},
ReleaseDir {
dir_handle: u32,
},
Lookup {
dir_vnode: VnodeId,
name: String,
},
OpenFile {
vnode: VnodeId,
mode: OpenMode,
},
ReleaseFile {
file_handle: u32,
},
ReadFile {
file_handle: u32,
offset: i64,
size: u32,
},
}
pub trait DataResponseBase: Serialize + DeserializeOwned + Debug + Clone + 'static {}