aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog.rst4
-rw-r--r--lib/fuse_lowlevel.c1
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog.rst b/ChangeLog.rst
index 4f355ce..5ddefdb 100644
--- a/ChangeLog.rst
+++ b/ChangeLog.rst
@@ -1,6 +1,10 @@
Unreleased Changes
==================
+* For low-level file systems that implement the `write_buf` handler,
+ the `splice_read` option is now enabled by default. As usual, this
+ can be changed in the file system's `init` handler.
+
* `fuse_session_new` now treats low-level options more consistently:
First, options are used to modify FUSE defaults. Second, the file
system may inspect and/or adjust the settings in its `init`
diff --git a/lib/fuse_lowlevel.c b/lib/fuse_lowlevel.c
index 3b30b21..d10191b 100644
--- a/lib/fuse_lowlevel.c
+++ b/lib/fuse_lowlevel.c
@@ -1928,6 +1928,7 @@ static void do_init(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
if ((cond) && (f->conn.capable & (cap))) \
f->conn.want |= (cap)
LL_SET_DEFAULT(1, FUSE_CAP_ASYNC_READ);
+ LL_SET_DEFAULT(f->op.write_buf, FUSE_CAP_SPLICE_READ);
LL_SET_DEFAULT(f->op.getlk && f->op.setlk,
FUSE_CAP_POSIX_LOCKS);
LL_SET_DEFAULT(f->op.flock, FUSE_CAP_FLOCK_LOCKS);