Skip to content

Commit

Permalink
xfs: remove the XBF_STALE check from xfs_buf_rele_cached
Browse files Browse the repository at this point in the history
xfs_buf_stale already set b_lru_ref to 0, and thus prevents the buffer
from moving to the LRU.  Remove the duplicate check.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
  • Loading branch information
Christoph Hellwig authored and Carlos Maiolino committed Feb 25, 2025
1 parent 0d1120b commit 9b47d37
Showing 1 changed file with 1 addition and 7 deletions.
8 changes: 1 addition & 7 deletions fs/xfs/xfs_buf.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,6 @@ xfs_buf_stale(
*/
bp->b_flags &= ~_XBF_DELWRI_Q;

/*
* Once the buffer is marked stale and unlocked, a subsequent lookup
* could reset b_flags. There is no guarantee that the buffer is
* unaccounted (released to LRU) before that occurs. Drop in-flight
* status now to preserve accounting consistency.
*/
spin_lock(&bp->b_lock);
atomic_set(&bp->b_lru_ref, 0);
if (!(bp->b_state & XFS_BSTATE_DISPOSE) &&
Expand Down Expand Up @@ -1033,7 +1027,7 @@ xfs_buf_rele_cached(
}

/* we are asked to drop the last reference */
if (!(bp->b_flags & XBF_STALE) && atomic_read(&bp->b_lru_ref)) {
if (atomic_read(&bp->b_lru_ref)) {
/*
* If the buffer is added to the LRU, keep the reference to the
* buffer for the LRU and clear the (now stale) dispose list
Expand Down

0 comments on commit 9b47d37

Please sign in to comment.