aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNikolaus Rath <Nikolaus@rath.org>2019-07-12 17:58:59 -0700
committerNikolaus Rath <Nikolaus@rath.org>2019-08-23 20:58:23 +0100
commit3c31bead28170dd75daf50b2865d99d2dd3c106b (patch)
tree9ca98aa44195feb71c3e790ff097608152003f49 /include
parent1d8e8ca94a3faa635afd1a3bd8d7d26472063a3f (diff)
downloadlibfuse-3c31bead28170dd75daf50b2865d99d2dd3c106b.tar.gz
Improve description of READDIRPLUS_AUTO.
Diffstat (limited to 'include')
-rw-r--r--include/fuse_common.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/fuse_common.h b/include/fuse_common.h
index efee194..e9b3e3e 100644
--- a/include/fuse_common.h
+++ b/include/fuse_common.h
@@ -264,6 +264,15 @@ struct fuse_loop_config {
* will issue both readdir() and readdirplus() requests, depending on
* how much information is expected to be required.
*
+ * As of Linux 4.20, the algorithm is as follows: when userspace
+ * starts to read directory entries, issue a READDIRPLUS request to
+ * the filesystem. If any entry attributes have been looked up by the
+ * time userspace requests the next batch of entries continue with
+ * READDIRPLUS, otherwise switch to plain READDIR. This will reasult
+ * in eg plain "ls" triggering READDIRPLUS first then READDIR after
+ * that because it doesn't do lookups. "ls -l" should result in all
+ * READDIRPLUS, except if dentries are already cached.
+ *
* This feature is enabled by default when supported by the kernel and
* if the filesystem implements both a readdirplus() and a readdir()
* handler.