Hi-- On 7/10/23 21:34, Jiachen Zhang wrote: > Signed-off-by: Jiachen Zhang <zhangjiachen.jaycee@xxxxxxxxxxxxx> > --- > Documentation/filesystems/fuse-io.rst | 32 +++++++++++++++++++++++++-- > 1 file changed, 30 insertions(+), 2 deletions(-) > > diff --git a/Documentation/filesystems/fuse-io.rst b/Documentation/filesystems/fuse-io.rst > index 255a368fe534..cdd292dd2e9c 100644 > --- a/Documentation/filesystems/fuse-io.rst > +++ b/Documentation/filesystems/fuse-io.rst > @@ -24,7 +31,8 @@ after any writes to the file. All mmap modes are supported. > The cached mode has two sub modes controlling how writes are handled. The > write-through mode is the default and is supported on all kernels. The > writeback-cache mode may be selected by the FUSE_WRITEBACK_CACHE flag in the > -FUSE_INIT reply. > +FUSE_INIT reply. In either modes, if the FOPEN_KEEP_CACHE flag is not set in either mode, > +the FUSE_OPEN, cached pages of the file will be invalidated immediatedly. immediately. > > In write-through mode each write is immediately sent to userspace as one or more > WRITE requests, as well as updating any cached pages (and caching previously > @@ -38,7 +46,27 @@ reclaim on memory pressure) or explicitly (invoked by close(2), fsync(2) and > when the last ref to the file is being released on munmap(2)). This mode > assumes that all changes to the filesystem go through the FUSE kernel module > (size and atime/ctime/mtime attributes are kept up-to-date by the kernel), so > -it's generally not suitable for network filesystems. If a partial page is > +it's generally not suitable for network filesystems (you can consider the > +writeback-cache-v2 mode mentioned latter for them). If a partial page is later > written, then the page needs to be first read from userspace. This means, that > even for files opened for O_WRONLY it is possible that READ requests will be > generated by the kernel. -- ~Randy