freebsd-dev/sys/fs/fuse
Alan Somers b5aaf286ea fusefs: fix the "write-through" of write-through cacheing
Our fusefs(5) module supports three cache modes: uncached, write-through,
and write-back.  However, the write-through mode (which is the default) has
never actually worked as its name suggests.  Rather, it's always been more
like "write-around".  It wrote directly, bypassing the cache.  The cache
would only be populated by a subsequent read of the same data.

This commit fixes that problem.  Now the write-through mode works as one
would expect: write(2) immediately adds data to the cache and then blocks
while the daemon processes the write operation.

A side effect of this change is that non-cache-block-aligned writes will now
incur a read-modify-write cycle of the cache block.  The old behavior
(bypassing write cache entirely) can still be achieved by opening a file
with O_DIRECT.

PR:		237588
Sponsored by:	The FreeBSD Foundation
2019-06-14 19:47:48 +00:00
..
fuse_device.c fusefs: support asynchronous cache invalidation 2019-06-03 17:34:01 +00:00
fuse_file.c fusefs: set the flags fields of fuse_write_in and fuse_read_in 2019-05-28 01:09:19 +00:00
fuse_file.h fusefs: raise protocol level to 7.10 2019-05-29 00:01:36 +00:00
fuse_internal.c MFHead @348740 2019-06-06 16:20:50 +00:00
fuse_internal.h MFHead @348740 2019-06-06 16:20:50 +00:00
fuse_io.c fusefs: fix the "write-through" of write-through cacheing 2019-06-14 19:47:48 +00:00
fuse_io.h fusefs: fix a deadlock in VOP_PUTPAGES 2019-04-26 19:47:43 +00:00
fuse_ipc.c fusefs: misc build fixes 2019-05-25 21:40:27 +00:00
fuse_ipc.h fusefs: implement FUSE_ASYNC_READ 2019-05-24 05:12:43 +00:00
fuse_kernel.h fusefs: raise protocol level to 7.12 2019-05-29 16:39:52 +00:00
fuse_main.c fusefs: FIFO support 2019-04-29 01:40:35 +00:00
fuse_node.c fusefs: fix a page fault with writeback cacheing 2019-06-11 23:46:31 +00:00
fuse_node.h MFHead @348740 2019-06-06 16:20:50 +00:00
fuse_vfsops.c fusefs: enable write clustering 2019-06-14 18:14:51 +00:00
fuse_vnops.c MFHead @348740 2019-06-06 16:20:50 +00:00
fuse.h fusefs: reap dead code 2019-04-19 23:04:07 +00:00