Re: [PATCH 10/13] xfs: convert buftarg LRU to generic code
From: Christoph Hellwig <hch@infradead.org>
Date: 2011-08-24 06:27:06
Also in:
linux-fsdevel, lkml
From: Christoph Hellwig <hch@infradead.org>
Date: 2011-08-24 06:27:06
Also in:
linux-fsdevel, lkml
-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? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>