diff options
Diffstat (limited to 'example/passthrough_ll.c')
-rw-r--r-- | example/passthrough_ll.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/example/passthrough_ll.c b/example/passthrough_ll.c index b15725f..46cc8e0 100644 --- a/example/passthrough_ll.c +++ b/example/passthrough_ll.c @@ -837,6 +837,12 @@ static void lo_open(fuse_req_t req, fuse_ino_t ino, struct fuse_file_info *fi) else if (lo->cache == CACHE_ALWAYS) fi->keep_cache = 1; + /* Enable direct_io when open has flags O_DIRECT to enjoy the feature + parallel_direct_writes (i.e., to get a shared lock, not exclusive lock, + for writes to the same file in the kernel). */ + if (fi->flags & O_DIRECT) + fi->direct_io = 1; + /* parallel_direct_writes feature depends on direct_io features. To make parallel_direct_writes valid, need set fi->direct_io in current function. */ |