From 48efcd0ce8c8a9ac51dc80c6ec49c63f6694b031 Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Wed, 29 Dec 2021 04:56:41 -0600 Subject: Implement buffered readdir --- examples/ext2.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'examples') diff --git a/examples/ext2.rs b/examples/ext2.rs index 4d074e9..3a68eee 100644 --- a/examples/ext2.rs +++ b/examples/ext2.rs @@ -147,7 +147,7 @@ impl Ext2 { &self, inode: &'static Inode, start: u64, - ) -> impl Stream, Errno>> + '_ { + ) -> impl Stream, Errno>> + '_ { stream::try_unfold(start, move |mut position| async move { loop { if position == inode.i_size as u64 { @@ -417,7 +417,8 @@ impl Ext2 { } async fn readdir<'o>(&self, (request, reply): Op<'o, Readdir>) -> Done<'o> { - let (mut reply, inode) = reply.fallible(self.inode(request.ino()))?; + let (reply, inode) = reply.fallible(self.inode(request.ino()))?; + let mut reply = reply.buffered(Vec::new()); let stream = self.directory_stream(inode, request.offset()); tokio::pin!(stream); -- cgit v1.2.3