Re: [PATCH 04/12] xfs: remove spurious XBF_DONE clearing on readahead validation failure
"Darrick J. Wong" <[email protected]>
| Newsgroups | org.kernel.vger.linux-xfs |
|---|---|
| Message-ID | <20260724164529.GR2901224@frogsfrogsfrogs> |
On Wed, Jul 15, 2026 at 04:50:57PM +0200, Christoph Hellwig wrote: > Both callers of ->verify_read already do this, so don't duplicate the > flag manipulation. > > Signed-off-by: Christoph Hellwig <[email protected]> Makes sense, Reviewed-by: "Darrick J. Wong" <[email protected]> --D > --- > fs/xfs/libxfs/xfs_dquot_buf.c | 8 +++----- > fs/xfs/libxfs/xfs_inode_buf.c | 15 ++++++++------- > 2 files changed, 11 insertions(+), 12 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_dquot_buf.c b/fs/xfs/libxfs/xfs_dquot_buf.c > index bbada0d3cc08..4736f66e2a9a 100644 > --- a/fs/xfs/libxfs/xfs_dquot_buf.c > +++ b/fs/xfs/libxfs/xfs_dquot_buf.c > @@ -252,8 +252,8 @@ xfs_dquot_buf_read_verify( > /* > * readahead errors are silent and simply leave the buffer as !done so a real > * read will then be run with the xfs_dquot_buf_ops verifier. See > - * xfs_inode_buf_verify() for why we use EIO and ~XBF_DONE here rather than > - * reporting the failure. > + * xfs_inode_buf_verify() for why we use EIO here rather than reporting the > + * failure. > */ > static void > xfs_dquot_buf_readahead_verify( > @@ -262,10 +262,8 @@ xfs_dquot_buf_readahead_verify( > struct xfs_mount *mp = bp->b_mount; > > if (!xfs_dquot_buf_verify_crc(mp, bp, true) || > - xfs_dquot_buf_verify(mp, bp, true) != NULL) { > + xfs_dquot_buf_verify(mp, bp, true) != NULL) > xfs_buf_ioerror(bp, -EIO); > - bp->b_flags &= ~XBF_DONE; > - } > } > > /* > diff --git a/fs/xfs/libxfs/xfs_inode_buf.c b/fs/xfs/libxfs/xfs_inode_buf.c > index 336ef843f2fe..e4c3f7b24e95 100644 > --- a/fs/xfs/libxfs/xfs_inode_buf.c > +++ b/fs/xfs/libxfs/xfs_inode_buf.c > @@ -29,12 +29,14 @@ > * has not had the inode cores stamped into it. Hence for readahead, the buffer > * may be potentially invalid. > * > - * If the readahead buffer is invalid, we need to mark it with an error and > - * clear the DONE status of the buffer so that a followup read will re-read it > - * from disk. We don't report the error otherwise to avoid warnings during log > - * recovery and we don't get unnecessary panics on debug kernels. We use EIO here > - * because all we want to do is say readahead failed; there is no-one to report > - * the error to, so this will distinguish it from a non-ra verifier failure. > + * If the readahead buffer is invalid, we need to mark it with an error so that a > + * followup read will re-read it from disk. > + * > + * We don't report the error otherwise to avoid warnings during log recovery and > + * we don't get unnecessary panics on debug kernels. Use EIO here because all > + * we want to do is say readahead failed; there is no-one to report the error > + * to, so this will distinguish it from a non-ra verifier failure. > + * > * Changes to this readahead error behaviour also need to be reflected in > * xfs_dquot_buf_readahead_verify(). > */ > @@ -64,7 +66,6 @@ xfs_inode_buf_verify( > if (unlikely(!di_ok || > XFS_TEST_ERROR(mp, XFS_ERRTAG_ITOBP_INOTOBP))) { > if (readahead) { > - bp->b_flags &= ~XBF_DONE; > xfs_buf_ioerror(bp, -EIO); > return; > } > -- > 2.53.0 > >