aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorDan Schatzberg <dschatzberg@fb.com>2018-10-11 11:17:00 -0400
committerMiklos Szeredi <mszeredi@redhat.com>2018-10-15 09:43:07 -0400
commit5571f1e65486be025f73fa6aa30fb03725d362a2 (patch)
treef5cf8954baf0697386ea6421011fe34d32be2526 /include/uapi/linux
parent9a2eb24d1a349f53e20f3d4503568551561eed23 (diff)
fuse: enable caching of symlinks
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). Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/fuse.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/uapi/linux/fuse.h b/include/uapi/linux/fuse.h
index 76f46f159992..b4967d48bfda 100644
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -121,6 +121,7 @@
121 * - add FUSE_COPY_FILE_RANGE 121 * - add FUSE_COPY_FILE_RANGE
122 * - add FOPEN_CACHE_DIR 122 * - add FOPEN_CACHE_DIR
123 * - add FUSE_MAX_PAGES, add max_pages to init_out 123 * - add FUSE_MAX_PAGES, add max_pages to init_out
124 * - add FUSE_CACHE_SYMLINKS
124 */ 125 */
125 126
126#ifndef _LINUX_FUSE_H 127#ifndef _LINUX_FUSE_H
@@ -257,6 +258,7 @@ struct fuse_file_lock {
257 * FUSE_POSIX_ACL: filesystem supports posix acls 258 * FUSE_POSIX_ACL: filesystem supports posix acls
258 * FUSE_ABORT_ERROR: reading the device after abort returns ECONNABORTED 259 * FUSE_ABORT_ERROR: reading the device after abort returns ECONNABORTED
259 * FUSE_MAX_PAGES: init_out.max_pages contains the max number of req pages 260 * FUSE_MAX_PAGES: init_out.max_pages contains the max number of req pages
261 * FUSE_CACHE_SYMLINKS: cache READLINK responses
260 */ 262 */
261#define FUSE_ASYNC_READ (1 << 0) 263#define FUSE_ASYNC_READ (1 << 0)
262#define FUSE_POSIX_LOCKS (1 << 1) 264#define FUSE_POSIX_LOCKS (1 << 1)
@@ -281,6 +283,7 @@ struct fuse_file_lock {
281#define FUSE_POSIX_ACL (1 << 20) 283#define FUSE_POSIX_ACL (1 << 20)
282#define FUSE_ABORT_ERROR (1 << 21) 284#define FUSE_ABORT_ERROR (1 << 21)
283#define FUSE_MAX_PAGES (1 << 22) 285#define FUSE_MAX_PAGES (1 << 22)
286#define FUSE_CACHE_SYMLINKS (1 << 23)
284 287
285/** 288/**
286 * CUSE INIT request/reply flags 289 * CUSE INIT request/reply flags