aboutsummaryrefslogtreecommitdiffstats
path: root/lib/fuse_kern_chan.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fuse_kern_chan.c')
-rw-r--r--lib/fuse_kern_chan.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/fuse_kern_chan.c b/lib/fuse_kern_chan.c
index d2999c5..fbe3943 100644
--- a/lib/fuse_kern_chan.c
+++ b/lib/fuse_kern_chan.c
@@ -64,6 +64,8 @@ static void fuse_kern_chan_destroy(struct fuse_chan *ch)
close(fuse_chan_fd(ch));
}
+#define MIN_BUFSIZE 0x21000
+
struct fuse_chan *fuse_kern_chan_new(int fd)
{
struct fuse_chan_ops op = {
@@ -71,5 +73,7 @@ struct fuse_chan *fuse_kern_chan_new(int fd)
.send = fuse_kern_chan_send,
.destroy = fuse_kern_chan_destroy,
};
- return fuse_chan_new(&op, fd, FUSE_MAX_IN, NULL);
+ size_t bufsize = getpagesize() + 0x1000;
+ bufsize = bufsize < MIN_BUFSIZE ? MIN_BUFSIZE : bufsize;
+ return fuse_chan_new(&op, fd, bufsize, NULL);
}