| From: |
| Chengguang Xu <cgxu519-AT-mykernel.net> |
| To: |
| miklos-AT-szeredi.hu, viro-AT-zeniv.linux.org.uk, amir73il-AT-gmail.com |
| Subject: |
| [RFC PATCH v3 0/9] Suppress negative dentry |
| Date: |
| Fri, 15 May 2020 15:20:38 +0800 |
| Message-ID: |
| <20200515072047.31454-1-cgxu519@mykernel.net> |
| Cc: |
| linux-fsdevel-AT-vger.kernel.org, linux-unionfs-AT-vger.kernel.org, Chengguang Xu <cgxu519-AT-mykernel.net> |
| Archive-link: |
| Article |
This series adds a new lookup flag LOOKUP_DONTCACHE_NEGATIVE
to indicate to drop negative dentry in slow path of lookup.
In overlayfs, negative dentries in upper/lower layers are useless
after construction of overlayfs' own dentry, so in order to
effectively reclaim those dentries, specify LOOKUP_DONTCACHE_NEGATIVE
flag when doing lookup in upper/lower layers.
Patch 1 adds flag LOOKUP_DONTCACHE_NEGATIVE and related logic in vfs layer.
Patch 2 does lookup optimazation for overlayfs.
Patch 3-9 just adjusts function argument when calling
lookup_positive_unlocked() and lookup_one_len_unlocked().
v1->v2:
- Only drop negative dentry in slow path of lookup.
v2->v3:
- Drop negative dentry in vfs layer.
- Rebase on latest linus-tree(5.7.0-rc5).
Chengguang Xu (9):
fs/dcache: Introduce a new lookup flag LOOKUP_DONTCACHE_NEGATIVE
ovl: Suppress negative dentry in lookup
cifs: Adjust argument for lookup_positive_unlocked()
debugfs: Adjust argument for lookup_positive_unlocked()
ecryptfs: Adjust argument for lookup_one_len_unlocked()
exportfs: Adjust argument for lookup_one_len_unlocked()
kernfs: Adjust argument for lookup_positive_unlocked()
nfsd: Adjust argument for lookup_positive_unlocked()
quota: Adjust argument for lookup_positive_unlocked()
fs/cifs/cifsfs.c | 2 +-
fs/debugfs/inode.c | 2 +-
fs/ecryptfs/inode.c | 2 +-
fs/exportfs/expfs.c | 2 +-
fs/kernfs/mount.c | 2 +-
fs/namei.c | 14 ++++++++++----
fs/nfsd/nfs3xdr.c | 2 +-
fs/nfsd/nfs4xdr.c | 3 ++-
fs/overlayfs/namei.c | 9 +++++----
fs/quota/dquot.c | 3 ++-
include/linux/namei.h | 9 +++++++--
11 files changed, 32 insertions(+), 18 deletions(-)
--
2.20.1