]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
9p: Set default negative dentry retention time for cache=loose
authorRemi Pommarel <repk@triplefau.lt>
Thu, 21 May 2026 09:40:31 +0000 (11:40 +0200)
committerDominique Martinet <asmadeus@codewreck.org>
Sun, 21 Jun 2026 05:22:57 +0000 (05:22 +0000)
For cache=loose mounts, set the default negative dentry cache retention
time to 24 hours.

Signed-off-by: Remi Pommarel <repk@triplefau.lt>
Message-ID: <b5beca3e70890ab8a4f0b9e99bd69cb97f5cb9eb.1779355927.git.repk@triplefau.lt>
Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
fs/9p/v9fs.c

index 3e758b66fefaeb9cf063d2a62485ec0e42b1eb22..274c5157135da3dd2b708f1ce21280b655838404 100644 (file)
@@ -24,6 +24,9 @@
 #include "v9fs_vfs.h"
 #include "cache.h"
 
+/* cache=loose default negative dentry retention time is 24hours */
+#define CACHE_LOOSE_NDENTRY_TIMEOUT_DEFAULT (24 * 60 * 60 * 1000)
+
 static DEFINE_SPINLOCK(v9fs_sessionlist_lock);
 static LIST_HEAD(v9fs_sessionlist);
 struct kmem_cache *v9fs_inode_cache;
@@ -441,6 +444,13 @@ static void v9fs_apply_options(struct v9fs_session_info *v9ses,
        v9ses->uid = ctx->session_opts.uid;
        v9ses->session_lock_timeout = ctx->session_opts.session_lock_timeout;
        v9ses->ndentry_timeout_ms = ctx->session_opts.ndentry_timeout_ms;
+
+       /* If negative dentry timeout has not been overridden set default for
+        * cache=loose
+        */
+       if (!(v9ses->flags & V9FS_NDENTRY_TIMEOUT_SET) &&
+           (v9ses->cache & CACHE_LOOSE))
+               v9ses->ndentry_timeout_ms = CACHE_LOOSE_NDENTRY_TIMEOUT_DEFAULT;
 }
 
 /**