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;
        }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to