lkml.org 
[lkml]   [2011]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 10/13] xfs: convert buftarg LRU to generic code
> -STATIC void
> +static inline void
> xfs_buf_lru_add(
> struct xfs_buf *bp)
> {
> - struct xfs_buftarg *btp = bp->b_target;
> -
> - spin_lock(&btp->bt_lru_lock);
> - if (list_empty(&bp->b_lru)) {
> + if (list_lru_add(&bp->b_target->bt_lru, &bp->b_lru))
> atomic_inc(&bp->b_hold);
> - list_add_tail(&bp->b_lru, &btp->bt_lru);
> - btp->bt_lru_nr++;
> - }
> - spin_unlock(&btp->bt_lru_lock);
> }

Is there any point in keeping this wrapper?

> +static inline void
> xfs_buf_lru_del(
> struct xfs_buf *bp)
> {
> if (list_empty(&bp->b_lru))
> return;
>
> + list_lru_del(&bp->b_target->bt_lru, &bp->b_lru);
> }

It seems like all callers of list_lru_del really want the unlocked
check. Out of your current set only two of the inode.c callers
are missing it, but given that those set I_FREEING first they should
be safe to do it as well. What do you think about pulling
the unlocked check into list_lru_del?



\
 
 \ /
  Last update: 2011-08-24 08:29    [W:0.101 / U:1.492 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site