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