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:6.382 / U:0.212 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site