Source kernel commit: c3b948be34702a0a81f10662c4040e500a90eb54 Add an error tag on xfs_da3_split to test log attribute recovery and replay. Signed-off-by: Catherine Hoang <catherine.hoang@xxxxxxxxxx> Reviewed-by: Allison Henderson <allison.henderson@xxxxxxxxxx> Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> Reviewed-by: Chandan Babu R <chandan.babu@xxxxxxxxxx> Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> Signed-off-by: Dave Chinner <david@xxxxxxxxxxxxx> Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> --- io/inject.c | 1 + libxfs/xfs_da_btree.c | 3 +++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/io/inject.c b/io/inject.c index 43b51db5b9cc..a7ad4df44503 100644 --- a/io/inject.c +++ b/io/inject.c @@ -59,6 +59,7 @@ error_tag(char *name) { XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT, "bmap_alloc_minlen_extent" }, { XFS_ERRTAG_AG_RESV_FAIL, "ag_resv_fail" }, { XFS_ERRTAG_LARP, "larp" }, + { XFS_ERRTAG_DA_LEAF_SPLIT, "da_leaf_split" }, { XFS_ERRTAG_MAX, NULL } }; int count; diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c index 1f39c108782d..7ecbc6812725 100644 --- a/libxfs/xfs_da_btree.c +++ b/libxfs/xfs_da_btree.c @@ -479,6 +479,9 @@ xfs_da3_split( trace_xfs_da_split(state->args); + if (XFS_TEST_ERROR(false, state->mp, XFS_ERRTAG_DA_LEAF_SPLIT)) + return -EIO; + /* * Walk back up the tree splitting/inserting/adjusting as necessary. * If we need to insert and there isn't room, split the node, then diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h index c15d2340220c..6d06a502bbdf 100644 --- a/libxfs/xfs_errortag.h +++ b/libxfs/xfs_errortag.h @@ -60,7 +60,8 @@ #define XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT 37 #define XFS_ERRTAG_AG_RESV_FAIL 38 #define XFS_ERRTAG_LARP 39 -#define XFS_ERRTAG_MAX 40 +#define XFS_ERRTAG_DA_LEAF_SPLIT 40 +#define XFS_ERRTAG_MAX 41 /* * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. @@ -105,5 +106,6 @@ #define XFS_RANDOM_BMAP_ALLOC_MINLEN_EXTENT 1 #define XFS_RANDOM_AG_RESV_FAIL 1 #define XFS_RANDOM_LARP 1 +#define XFS_RANDOM_DA_LEAF_SPLIT 1 #endif /* __XFS_ERRORTAG_H_ */ -- 2.25.1