@@ -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_LEAF_SPLIT, "leaf_split" },
{ XFS_ERRTAG_MAX, NULL }
};
int count;
@@ -479,6 +479,11 @@ xfs_da3_split(
trace_xfs_da_split(state->args);
+ if (XFS_TEST_ERROR(false, state->mp, XFS_ERRTAG_LEAF_SPLIT)) {
+ error = -EIO;
+ return error;
+ }
+
/*
* Walk back up the tree splitting/inserting/adjusting as necessary.
* If we need to insert and there isn't room, split the node, then
@@ -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_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_LEAF_SPLIT 1
#endif /* __XFS_ERRORTAG_H_ */
Add an error tag on xfs_da3_split to test log attribute recovery and replay. Signed-off-by: Catherine Hoang <catherine.hoang@oracle.com> --- io/inject.c | 1 + libxfs/xfs_da_btree.c | 5 +++++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-)