aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/dcache.c')
-rw-r--r--fs/dcache.c40
1 files changed, 0 insertions, 40 deletions
diff --git a/fs/dcache.c b/fs/dcache.c
index 59dbc92c2079..313b54b2b8f2 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -687,46 +687,6 @@ void shrink_dcache_parent(struct dentry * parent)
687 prune_dcache(found, parent->d_sb); 687 prune_dcache(found, parent->d_sb);
688} 688}
689 689
690/**
691 * shrink_dcache_anon - further prune the cache
692 * @head: head of d_hash list of dentries to prune
693 *
694 * Prune the dentries that are anonymous
695 *
696 * parsing d_hash list does not hlist_for_each_entry_rcu() as it
697 * done under dcache_lock.
698 *
699 */
700void shrink_dcache_anon(struct super_block *sb)
701{
702 struct hlist_node *lp;
703 struct hlist_head *head = &sb->s_anon;
704 int found;
705 do {
706 found = 0;
707 spin_lock(&dcache_lock);
708 hlist_for_each(lp, head) {
709 struct dentry *this = hlist_entry(lp, struct dentry, d_hash);
710 if (!list_empty(&this->d_lru)) {
711 dentry_stat.nr_unused--;
712 list_del_init(&this->d_lru);
713 }
714
715 /*
716 * move only zero ref count dentries to the end
717 * of the unused list for prune_dcache
718 */
719 if (!atomic_read(&this->d_count)) {
720 list_add_tail(&this->d_lru, &dentry_unused);
721 dentry_stat.nr_unused++;
722 found++;
723 }
724 }
725 spin_unlock(&dcache_lock);
726 prune_dcache(found, sb);
727 } while(found);
728}
729
730/* 690/*
731 * Scan `nr' dentries and return the number which remain. 691 * Scan `nr' dentries and return the number which remain.
732 * 692 *