[Devel] [PATCH RH7 19/32] dcache.c: call ->d_prune() regardless of d_unhashed()
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Mon Jun 8 20:05:49 MSK 2020
From: Al Viro <viro at zeniv.linux.org.uk>
the only in-tree instance checks d_unhashed() anyway,
out-of-tree code can preserve the current behaviour by
adding such check if they want it and we get an ability
to use it in cases where we *want* to be notified of
killing being inevitable before ->d_lock is dropped,
whether it's unhashed or not. In particular, autofs
would benefit from that.
Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
(cherry picked from VZ8 commit 2926620145095ffb0350b2312ac9d0af8537796f)
This patch is required for ("take the targets of /proc/*/ns/* symlinks
to separate fs") as in ns_prune_dentry it wants to unstash dentry from
ns.
https://jira.sw.ru/browse/PSBM-102357
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
fs/dcache.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/dcache.c b/fs/dcache.c
index e4bdb717669e..6e3e53d95155 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -619,7 +619,7 @@ static void __dentry_kill(struct dentry *dentry)
* inform the fs via d_prune that this dentry is about to be
* unhashed and destroyed.
*/
- if ((dentry->d_flags & DCACHE_OP_PRUNE) && !d_unhashed(dentry))
+ if (dentry->d_flags & DCACHE_OP_PRUNE)
dentry->d_op->d_prune(dentry);
if (dentry->d_flags & DCACHE_LRU_LIST) {
--
2.24.1
More information about the Devel
mailing list