Re: [PATCH 10/16] xfs: add a lru to the XFS buffer cache

Dave Chinner
2010-11-08T23:43:51Z

On Mon, Nov 08, 2010 at 06:19:28PM -0500, Christoph Hellwig wrote:
> > @@ -471,6 +546,8 @@ _xfs_buf_find(
> > /* the buffer keeps the perag reference until it is freed */
> > new_bp->b_pag = pag;
> > spin_unlock(&pag->pag_buf_lock);
> > +
> > + xfs_buf_lru_add(new_bp);
>
> Why do we add the buffer to the lru when we find it? Normally we
> would remove it here (unless we want a lazy lru scheme),

Oh, I forgot to remove that from the patch when rewriting it to use
lazy updateѕ. Good catch! (*)

>
> and potentially increment b_lru_ref - although that seems to be
> done by the callers in the next patch.

b_lru_ref is initialised to 1 when the buffer is first initialised,
so it doesn't need to be done here. And yes, the next patch allows
the users of the buffers to set the reclaim reference count
themselves when the buffer is read for prioritisation. ideally I
don't want to have to touch the reclaim state of the buffer during
xfs_buf_find....

Cheers,

Dave.

(*) Catching this sort of bug is exactly why I posted the series
early. Little details are easy to miss in a forest of changes this
large....
--
Dave Chinner
david@fromorbit.com