summaryrefslogtreecommitdiffstats
path: root/fs/dcache.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-04-30 05:42:52 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2014-05-01 00:02:52 +0200
commit01b6035190b024240a43ac1d8e9c6f964f5f1c63 (patch)
tree2078b992172b0472c4376025d6a5a964d1aa708b /fs/dcache.c
parentnew helper: dentry_free() (diff)
downloadlinux-01b6035190b024240a43ac1d8e9c6f964f5f1c63.tar.xz
linux-01b6035190b024240a43ac1d8e9c6f964f5f1c63.zip
expand the call of dentry_lru_del() in dentry_kill()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/dcache.c')
-rw-r--r--fs/dcache.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index dab7db10d685..e482775343a0 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -501,7 +501,12 @@ relock:
if ((dentry->d_flags & DCACHE_OP_PRUNE) && !d_unhashed(dentry))
dentry->d_op->d_prune(dentry);
- dentry_lru_del(dentry);
+ if (dentry->d_flags & DCACHE_LRU_LIST) {
+ if (!(dentry->d_flags & DCACHE_SHRINK_LIST))
+ d_lru_del(dentry);
+ else
+ d_shrink_del(dentry);
+ }
/* if it was on the hash then remove it */
__d_drop(dentry);
list_del(&dentry->d_u.d_child);