aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/dcache.c')
-rw-r--r--fs/dcache.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index c37a656802b0..1a976d4efbe1 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -246,13 +246,16 @@ repeat:
246 if (dentry->d_op->d_delete(dentry)) 246 if (dentry->d_op->d_delete(dentry))
247 goto unhash_it; 247 goto unhash_it;
248 } 248 }
249
249 /* Unreachable? Get rid of it */ 250 /* Unreachable? Get rid of it */
250 if (d_unhashed(dentry)) 251 if (d_unhashed(dentry))
251 goto kill_it; 252 goto kill_it;
252 if (list_empty(&dentry->d_lru)) { 253
253 dentry->d_flags |= DCACHE_REFERENCED; 254 /* Otherwise leave it cached and ensure it's on the LRU */
255 dentry->d_flags |= DCACHE_REFERENCED;
256 if (list_empty(&dentry->d_lru))
254 dentry_lru_add(dentry); 257 dentry_lru_add(dentry);
255 } 258
256 spin_unlock(&dentry->d_lock); 259 spin_unlock(&dentry->d_lock);
257 spin_unlock(&dcache_lock); 260 spin_unlock(&dcache_lock);
258 return; 261 return;