Source kernel commit: c5218a7cd97349c53bc64e447778a07e49364d40 Add an error tag on xfs_attr3_leaf_to_node 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_attr_leaf.c | 5 +++++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/io/inject.c b/io/inject.c index a7ad4df44503..4f7c6fff4cd6 100644 --- a/io/inject.c +++ b/io/inject.c @@ -60,6 +60,7 @@ error_tag(char *name) { XFS_ERRTAG_AG_RESV_FAIL, "ag_resv_fail" }, { XFS_ERRTAG_LARP, "larp" }, { XFS_ERRTAG_DA_LEAF_SPLIT, "da_leaf_split" }, + { XFS_ERRTAG_ATTR_LEAF_TO_NODE, "attr_leaf_to_node" }, { XFS_ERRTAG_MAX, NULL } }; int count; diff --git a/libxfs/xfs_attr_leaf.c b/libxfs/xfs_attr_leaf.c index 45d1b0634db4..6bd324844f32 100644 --- a/libxfs/xfs_attr_leaf.c +++ b/libxfs/xfs_attr_leaf.c @@ -1186,6 +1186,11 @@ xfs_attr3_leaf_to_node( trace_xfs_attr_leaf_to_node(args); + if (XFS_TEST_ERROR(false, mp, XFS_ERRTAG_ATTR_LEAF_TO_NODE)) { + error = -EIO; + goto out; + } + error = xfs_da_grow_inode(args, &blkno); if (error) goto out; diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h index 6d06a502bbdf..5362908164b0 100644 --- a/libxfs/xfs_errortag.h +++ b/libxfs/xfs_errortag.h @@ -61,7 +61,8 @@ #define XFS_ERRTAG_AG_RESV_FAIL 38 #define XFS_ERRTAG_LARP 39 #define XFS_ERRTAG_DA_LEAF_SPLIT 40 -#define XFS_ERRTAG_MAX 41 +#define XFS_ERRTAG_ATTR_LEAF_TO_NODE 41 +#define XFS_ERRTAG_MAX 42 /* * Random factors for above tags, 1 means always, 2 means 1/2 time, etc. @@ -107,5 +108,6 @@ #define XFS_RANDOM_AG_RESV_FAIL 1 #define XFS_RANDOM_LARP 1 #define XFS_RANDOM_DA_LEAF_SPLIT 1 +#define XFS_RANDOM_ATTR_LEAF_TO_NODE 1 #endif /* __XFS_ERRORTAG_H_ */ -- 2.25.1