On Thu, Oct 11, 2018 at 5:17 PM, Dan Schatzberg <dschatzberg@xxxxxx> wrote: > FUSE file reads are cached in the page cache, but symlink reads are > not. This patch enables FUSE READLINK operations to be cached which > can improve performance of some FUSE workloads. > > In particular, I'm working on a FUSE filesystem for access to source > code and discovered that about a 10% improvement to build times is > achieved with this patch (there are a lot of symlinks in the source > tree). Pushed a modified version to for-next in the fuse tree. One important change is to zero-terminate the link (do not rely on i_size to provide the proper zero termination for fear of a trivial information leak vector). Other changes are: use of inode_nohighmem(), which seems to be the idiomatic way of preventing highmem, and merging the non-cached and cached code paths as much as possible. Thanks, Miklos