Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Apr 2017 22:00:22 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r317273 - head/sys/fs/fuse
Message-ID:  <201704212200.v3LM0M88021010@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;
 	}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704212200.v3LM0M88021010>