]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: add leaf to node error tag
authorAllison Henderson <allison.henderson@oracle.com>
Wed, 22 Jun 2022 19:28:52 +0000 (14:28 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Wed, 22 Jun 2022 19:28:52 +0000 (14:28 -0500)
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@oracle.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
io/inject.c
libxfs/xfs_attr_leaf.c
libxfs/xfs_errortag.h

index a7ad4df445031f22faecd0f074574b83842d102c..4f7c6fff4cd6e381fe207bb0037bd2c0bcce7042 100644 (file)
@@ -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;
index 45d1b0634db4801fac85b50011c777ef32e0c943..ae768965abfbad04d484aa098a9740f114400f90 100644 (file)
@@ -25,6 +25,7 @@
 #include "xfs_trace.h"
 #include "xfs_dir2.h"
 #include "xfs_ag.h"
+#include "xfs_errortag.h"
 
 
 /*
@@ -1186,6 +1187,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;
index 6d06a502bbdfdfe1a1b6755917a5d503a5376376..5362908164b0b1262f31fd83c4dc0c2538363d60 100644 (file)
@@ -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.
 #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_ */