xfs: remove the XBF_STALE check from xfs_buf_rele_cached
authorChristoph Hellwig <hch@lst.de>
Mon, 24 Feb 2025 23:48:55 +0000 (15:48 -0800)
committerCarlos Maiolino <cem@kernel.org>
Tue, 25 Feb 2025 12:05:59 +0000 (13:05 +0100)
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>
fs/xfs/xfs_buf.c

index e161f3ab410879cdb8b5c550d0defacc6ffcfded..5d560e9073f4236f8f03830a1485a00cc234c22c 100644 (file)
@@ -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) &&
@@ -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