]> git-server-git.apps.pok.os.sepia.ceph.com Git - xfsprogs-dev.git/commitdiff
xfs: error tag to force zeroing on debug kernels
authorBrian Foster <bfoster@redhat.com>
Sun, 22 Feb 2026 22:40:59 +0000 (14:40 -0800)
committerAndrey Albershteyn <aalbersh@kernel.org>
Mon, 2 Mar 2026 09:54:27 +0000 (10:54 +0100)
Source kernel commit: 66d78a11479cfea00e8d1d9d3e33f3db1597e6bf

iomap_zero_range() has to cover various corner cases that are
difficult to test on production kernels because it is used in fairly
limited use cases. For example, it is currently only used by XFS and
mostly only in partial block zeroing cases.

While it's possible to test most of these functional cases, we can
provide more robust test coverage by co-opting fallocate zero range
to invoke zeroing of the entire range instead of the more efficient
block punch/allocate sequence. Add an errortag to occasionally
invoke forced zeroing.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
libxfs/xfs_errortag.h

index de840abc0bcd44e3e921fc335804020cc21b251c..57e47077c75a2a00b6fc55c069b0691d8b0a7371 100644 (file)
@@ -73,7 +73,8 @@
 #define XFS_ERRTAG_WRITE_DELAY_MS                      43
 #define XFS_ERRTAG_EXCHMAPS_FINISH_ONE                 44
 #define XFS_ERRTAG_METAFILE_RESV_CRITICAL              45
-#define XFS_ERRTAG_MAX                                 46
+#define XFS_ERRTAG_FORCE_ZERO_RANGE                    46
+#define XFS_ERRTAG_MAX                                 47
 
 /*
  * Random factors for above tags, 1 means always, 2 means 1/2 time, etc.
@@ -133,7 +134,8 @@ XFS_ERRTAG(ATTR_LEAF_TO_NODE,       attr_leaf_to_node,      1) \
 XFS_ERRTAG(WB_DELAY_MS,                wb_delay_ms,            3000) \
 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(METAFILE_RESV_CRITICAL, metafile_resv_crit, 4) \
+XFS_ERRTAG(FORCE_ZERO_RANGE,   force_zero_range,       4)
 #endif /* XFS_ERRTAG */
 
 #endif /* __XFS_ERRORTAG_H_ */