Re: [patch 04/23] dentries: Extract common code to remove dentry from lru

Christoph Lameter
2007-11-07T18:28:53Z

On Wed, 7 Nov 2007, Johannes Weiner wrote:

> Hi Christoph,
>
> On Tue, Nov 06, 2007 at 05:11:34PM -0800, Christoph Lameter wrote:
> > @@ -613,11 +606,7 @@ static void shrink_dcache_for_umount_sub
> > spin_lock(&dcache_lock);
> > list_for_each_entry(loop, &dentry->d_subdirs,
> > d_u.d_child) {
> > - if (!list_empty(&loop->d_lru)) {
> > - dentry_stat.nr_unused--;
> > - list_del_init(&loop->d_lru);
> > - }
> > -
> > + dentry_lru_remove(dentry);
>
> Shouldn't this be dentry_lru_remove(loop)?

Correct. Andrew: This needs to go into your tree to fix the patch that is
already there:

[PATCH] dcache: use the correct variable.

We need to use "loop" instead of "dentry"

Signed-off-by: Christoph Lameter <clameter@sgi.com>

Index: linux-2.6/fs/dcache.c
===================================================================
--- linux-2.6.orig/fs/dcache.c 2007-11-07 10:26:20.000000000 -0800
+++ linux-2.6/fs/dcache.c 2007-11-07 10:26:27.000000000 -0800
@@ -610,7 +610,7 @@ static void shrink_dcache_for_umount_sub
spin_lock(&dcache_lock);
list_for_each_entry(loop, &dentry->d_subdirs,
d_u.d_child) {
- dentry_lru_remove(dentry);
+ dentry_lru_remove(loop);
__d_drop(loop);
cond_resched_lock(&dcache_lock);
}