Messages in this thread | | | From | Miklos Szeredi <> | Date | Mon, 15 Oct 2018 16:50:08 +0200 | Subject | Re: [PATCH v2] fuse: enable caching of symlinks |
| |
On Thu, Oct 11, 2018 at 5:17 PM, Dan Schatzberg <dschatzberg@fb.com> 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
| |