summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2021-12-29 06:11:24 -0600
committerAlejandro Soto <alejandro@34project.org>2021-12-29 06:11:42 -0600
commit36e6ca83518c5afec980561ae9dbd6bdf4118420 (patch)
treeedc0fda0d2ee148d0dc90e1c7307d38068427986
parent95ae1b7cfaa92ac0fc10a362ed9cdd29a37b0781 (diff)
Refactor FsInfo API
Diffstat (limited to '')
-rw-r--r--examples/ext2.rs22
-rw-r--r--src/fuse/io.rs3
-rw-r--r--src/fuse/ops.rs5
3 files changed, 15 insertions, 15 deletions
diff --git a/examples/ext2.rs b/examples/ext2.rs
index 3a68eee..4c62a3f 100644
--- a/examples/ext2.rs
+++ b/examples/ext2.rs
@@ -330,17 +330,17 @@ impl Ext2 {
let total_inodes = self.superblock.s_inodes_count as u64;
let free_inodes = self.superblock.s_free_inodes_count as u64;
- reply.info(
- FsInfo::default()
- .blocks(
- self.block_size() as u32,
- total_blocks,
- free_blocks,
- available_blocks,
- )
- .inodes(total_inodes, free_inodes)
- .filenames(255),
- )
+ let info = FsInfo::default()
+ .blocks(
+ self.block_size() as u32,
+ total_blocks,
+ free_blocks,
+ available_blocks,
+ )
+ .inodes(total_inodes, free_inodes)
+ .max_filename(255);
+
+ reply.info(&info)
}
async fn getattr<'o>(&self, (request, reply): Op<'o, Getattr>) -> Done<'o> {
diff --git a/src/fuse/io.rs b/src/fuse/io.rs
index 7ba2944..db33ab3 100644
--- a/src/fuse/io.rs
+++ b/src/fuse/io.rs
@@ -41,6 +41,7 @@ pub struct Entry<'a, K> {
pub ttl: Ttl,
}
+#[derive(Copy, Clone)]
pub struct FsInfo(proto::StatfsOut);
impl<'o, O: Operation<'o>> Request<'o, O> {
@@ -296,7 +297,7 @@ impl FsInfo {
})
}
- pub fn filenames(self, max: u32) -> Self {
+ pub fn max_filename(self, max: u32) -> Self {
FsInfo(proto::StatfsOut {
namelen: max,
..self.0
diff --git a/src/fuse/ops.rs b/src/fuse/ops.rs
index bfb45b8..01d671e 100644
--- a/src/fuse/ops.rs
+++ b/src/fuse/ops.rs
@@ -311,9 +311,8 @@ op! {
impl Reply {
/// Replies with filesystem statistics.
- pub fn info(self, statfs: FsInfo) -> Done<'o> {
- let statfs: proto::StatfsOut = statfs.into();
- self.single(&statfs)
+ pub fn info(self, statfs: &FsInfo) -> Done<'o> {
+ self.single(&proto::StatfsOut::from(*statfs))
}
}
}