Index: linux-2.6.11-rc5-nostack/fs/dcache.c =================================================================== --- linux-2.6.11-rc5-nostack.orig/fs/dcache.c 2005-03-11 15:19:58.000000000 -0600 +++ linux-2.6.11-rc5-nostack/fs/dcache.c 2005-03-26 01:35:29.000000000 -0600 @@ -656,7 +656,7 @@ do { found = 0; spin_lock(&dcache_lock); - hlist_for_each(lp, head) { + for (lp=head->first; lp; lp = lp->next) { struct dentry *this = hlist_entry(lp, struct dentry, d_hash); if (!list_empty(&this->d_lru)) { dentry_stat.nr_unused--; @@ -1047,7 +1047,9 @@ rcu_read_lock(); - hlist_for_each_rcu(node, head) { + for (node=head->first; node; + ({ node = node->next; smp_read_barrier_depends(); })) + { struct dentry *dentry; struct qstr *qstr; @@ -1123,7 +1125,7 @@ spin_lock(&dcache_lock); base = d_hash(dparent, dentry->d_name.hash); - hlist_for_each(lhp,base) { + for (lhp=base->first; lhp; lhp = lhp->next) { /* hlist_for_each_rcu() not required for d_hash list * as it is parsed under dcache_lock */