]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: Add log attribute 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: abd61ca3c333506ffa4ee73b78659ab57e7efcf7

This patch adds an error tag that we can use to test log attribute
recovery and replay

Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
io/inject.c
libxfs/defer_item.c
libxfs/xfs_errortag.h

index b8b0977e139e7ae2807ab12c3e4658fa43abd9a8..43b51db5b9ccfdddcbd55a38ee840424903b4879 100644 (file)
@@ -58,6 +58,7 @@ error_tag(char *name)
                { XFS_ERRTAG_REDUCE_MAX_IEXTENTS,       "reduce_max_iextents" },
                { XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT,  "bmap_alloc_minlen_extent" },
                { XFS_ERRTAG_AG_RESV_FAIL,              "ag_resv_fail" },
+               { XFS_ERRTAG_LARP,                      "larp" },
                { XFS_ERRTAG_MAX,                       NULL }
        };
        int     count;
index e920dc9fcde187551225e11e62d541be7f59d3b5..65afdb21afa0de1376b48387ead8bc588154036f 100644 (file)
@@ -510,6 +510,11 @@ xfs_attr_finish_item(
         */
        args->trans = tp;
 
+       if (XFS_TEST_ERROR(false, args->dp->i_mount, XFS_ERRTAG_LARP)) {
+               error = -EIO;
+               goto out;
+       }
+
        switch (op) {
        case XFS_ATTR_OP_FLAGS_SET:
                error = xfs_attr_set_iter(dac);
@@ -522,7 +527,7 @@ xfs_attr_finish_item(
                error = -EFSCORRUPTED;
                break;
        }
-
+out:
        if (error != -EAGAIN)
                kmem_free(attr);
 
index a23a52e643ad19a5c665c004b8350385b67ce847..c15d2340220c19e5b107666c34a69a08006931e0 100644 (file)
@@ -59,7 +59,8 @@
 #define XFS_ERRTAG_REDUCE_MAX_IEXTENTS                 36
 #define XFS_ERRTAG_BMAP_ALLOC_MINLEN_EXTENT            37
 #define XFS_ERRTAG_AG_RESV_FAIL                                38
-#define XFS_ERRTAG_MAX                                 39
+#define XFS_ERRTAG_LARP                                        39
+#define XFS_ERRTAG_MAX                                 40
 
 /*
  * Random factors for above tags, 1 means always, 2 means 1/2 time, etc.
 #define XFS_RANDOM_REDUCE_MAX_IEXTENTS                 1
 #define XFS_RANDOM_BMAP_ALLOC_MINLEN_EXTENT            1
 #define XFS_RANDOM_AG_RESV_FAIL                                1
+#define XFS_RANDOM_LARP                                        1
 
 #endif /* __XFS_ERRORTAG_H_ */