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
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.