aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/dcache.c')
-rw-r--r--fs/dcache.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index 5cdd14e95858..42d290be0ac1 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -553,18 +553,18 @@ void shrink_dcache_sb(struct super_block * sb)
553 * superblock to the most recent end of the unused list. 553 * superblock to the most recent end of the unused list.
554 */ 554 */
555 spin_lock(&dcache_lock); 555 spin_lock(&dcache_lock);
556 list_for_each_safe(tmp, next, &dentry_unused) { 556 list_for_each_prev_safe(tmp, next, &dentry_unused) {
557 dentry = list_entry(tmp, struct dentry, d_lru); 557 dentry = list_entry(tmp, struct dentry, d_lru);
558 if (dentry->d_sb != sb) 558 if (dentry->d_sb != sb)
559 continue; 559 continue;
560 list_move(tmp, &dentry_unused); 560 list_move_tail(tmp, &dentry_unused);
561 } 561 }
562 562
563 /* 563 /*
564 * Pass two ... free the dentries for this superblock. 564 * Pass two ... free the dentries for this superblock.
565 */ 565 */
566repeat: 566repeat:
567 list_for_each_safe(tmp, next, &dentry_unused) { 567 list_for_each_prev_safe(tmp, next, &dentry_unused) {
568 dentry = list_entry(tmp, struct dentry, d_lru); 568 dentry = list_entry(tmp, struct dentry, d_lru);
569 if (dentry->d_sb != sb) 569 if (dentry->d_sb != sb)
570 continue; 570 continue;