diff --git a/src/fs.rs b/src/fs.rs index 351db72..e217d1f 100644 --- a/src/fs.rs +++ b/src/fs.rs @@ -9,6 +9,7 @@ type Inode = usize; pub struct PdsFs { repos: IndexMap>, inodes: IndexSet, + rt: tokio::runtime::Runtime, } #[derive(Debug, Clone, PartialEq, Eq, Hash)] @@ -91,6 +92,7 @@ where PdsFs { repos: Default::default(), inodes: IndexSet::from([PdsFsEntry::Zero, PdsFsEntry::Root]), + rt: tokio::runtime::Runtime::new().unwrap(), } } @@ -164,8 +166,8 @@ where let did = self.inodes[col.parent].unwrap_did(); let repo = &mut self.repos[did]; let key = format!("{}/{}", col.nsid, r.rkey); - let rt = tokio::runtime::Runtime::new().unwrap(); - let size = rt + let size = self + .rt .block_on(repo.get_raw::(&key)) .ok() .flatten() @@ -377,14 +379,16 @@ where _lock: Option, reply: fuser::ReplyData, ) { - let rt = tokio::runtime::Runtime::new().unwrap(); if let Some(PdsFsEntry::Record(r)) = self.inodes.get_index(ino as usize) { let col = self.inodes[r.parent].unwrap_collection(); let did = self.inodes[col.parent].unwrap_did(); let repo = &mut self.repos[did]; let key = format!("{}/{}", col.nsid, r.rkey); - if let Ok(Some(val)) = rt.block_on(repo.get_raw::(&key)) { + if let Ok(Some(val)) = self + .rt + .block_on(repo.get_raw::(&key)) + { reply.data(&serde_json::to_string(&val).unwrap().as_bytes()[offset as usize..]); return; }