svn commit: r317273 - head/sys/fs/fuse
Conrad Meyer
cem at FreeBSD.org
Fri Apr 21 22:00:23 UTC 2017
Author: cem
Date: Fri Apr 21 22:00:22 2017
New Revision: 317273
URL: https://svnweb.freebsd.org/changeset/base/317273
Log:
fuse: Implement FOPEN_KEEP_CACHE flag
Implement FUSE open flag FOPEN_KEEP_CACHE. Without this flag, cached file
contents should be invalidated on open. Apparently, fusefs-encfs relies
upon this behavior.
PR: 218636
Submitted by: Ben RUBSON <ben.rubson at gmail.com>
Modified:
head/sys/fs/fuse/fuse_node.c
Modified: head/sys/fs/fuse/fuse_node.c
==============================================================================
--- head/sys/fs/fuse/fuse_node.c Fri Apr 21 21:43:00 2017 (r317272)
+++ head/sys/fs/fuse/fuse_node.c Fri Apr 21 22:00:22 2017 (r317273)
@@ -272,8 +272,6 @@ fuse_vnode_open(struct vnode *vp, int32_
/*
* Funcation is called for every vnode open.
* Merge fuse_open_flags it may be 0
- *
- * XXXIP: Handle FOPEN_KEEP_CACHE
*/
/*
* Ideally speaking, direct io should be enabled on
@@ -293,6 +291,8 @@ fuse_vnode_open(struct vnode *vp, int32_
VTOFUD(vp)->flag |= FN_DIRECTIO;
fuse_io_invalbuf(vp, td);
} else {
+ if ((fuse_open_flags & FOPEN_KEEP_CACHE) == 0)
+ fuse_io_invalbuf(vp, td);
VTOFUD(vp)->flag &= ~FN_DIRECTIO;
}
More information about the svn-src-head
mailing list