Re: [PATCH 21/22] xfs: add error injection for lazy bounce buffering
"Darrick J. Wong" <[email protected]>
| Newsgroups | org.kernel.vger.linux-xfs,org.kernel.vger.linux-block,org.kernel.vger.linux-fsdevel |
|---|---|
| Message-ID | <20260723210621.GK2901224@frogsfrogsfrogs> |
On Thu, Jul 23, 2026 at 04:49:46PM +0200, Christoph Hellwig wrote: > Add an error injection know to exercise the lazy bounce buffering > code path, i.e. to inject direct I/O re-read using the bounce buffer. > > Signed-off-by: Christoph Hellwig <[email protected]> LGTM Reviewed-by: "Darrick J. Wong" <[email protected]> --D > --- > fs/xfs/libxfs/xfs_errortag.h | 6 ++++-- > fs/xfs/xfs_ioend.c | 5 ++++- > 2 files changed, 8 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_errortag.h b/fs/xfs/libxfs/xfs_errortag.h > index 6de207fed2d8..2dc441da0333 100644 > --- a/fs/xfs/libxfs/xfs_errortag.h > +++ b/fs/xfs/libxfs/xfs_errortag.h > @@ -75,7 +75,8 @@ > #define XFS_ERRTAG_METAFILE_RESV_CRITICAL 45 > #define XFS_ERRTAG_FORCE_ZERO_RANGE 46 > #define XFS_ERRTAG_ZONE_RESET 47 > -#define XFS_ERRTAG_MAX 48 > +#define XFS_ERRTAG_BOUNCE_REREAD 48 > +#define XFS_ERRTAG_MAX 49 > > /* > * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. > @@ -137,7 +138,8 @@ XFS_ERRTAG(WRITE_DELAY_MS, write_delay_ms, 3000) \ > XFS_ERRTAG(EXCHMAPS_FINISH_ONE, exchmaps_finish_one, 1) \ > XFS_ERRTAG(METAFILE_RESV_CRITICAL, metafile_resv_crit, 4) \ > XFS_ERRTAG(FORCE_ZERO_RANGE, force_zero_range, 4) \ > -XFS_ERRTAG(ZONE_RESET, zone_reset, 1) > +XFS_ERRTAG(ZONE_RESET, zone_reset, 1) \ > +XFS_ERRTAG(BOUNCE_REREAD, bounce_reread, XFS_RANDOM_DEFAULT) > #endif /* XFS_ERRTAG */ > > #endif /* __XFS_ERRORTAG_H_ */ > diff --git a/fs/xfs/xfs_ioend.c b/fs/xfs/xfs_ioend.c > index 94a81fb679ed..641f0d881b07 100644 > --- a/fs/xfs/xfs_ioend.c > +++ b/fs/xfs/xfs_ioend.c > @@ -16,6 +16,8 @@ > #include "xfs_reflink.h" > #include "xfs_zone_alloc.h" > #include "xfs_ioend.h" > +#include "xfs_error.h" > +#include "xfs_errortag.h" > #include <linux/bio-integrity.h> > > static void > @@ -103,7 +105,8 @@ xfs_end_io_read( > * but right now we can't distinguish them from other > * (i.e, reftag) errors. > */ > - if (error) { > + if (error || > + XFS_TEST_ERROR(mp, XFS_ERRTAG_BOUNCE_REREAD)) { > xfs_read_bounce_and_resubmit(ioend); > return; > } > -- > 2.53.0 > >