[PATCH v22 24/27] xfsprogs: Add delayed attributes error tag
From: Allison Henderson <hidden>
Date: 2021-07-27 06:20:05
Subsystem:
the rest · Maintainer:
Linus Torvalds
This patch adds an error tag that we can use to test delayed attribute recovery and replay Signed-off-by: Allison Henderson <redacted> Reviewed-by: Darrick J. Wong <redacted> --- io/inject.c | 1 + libxfs/defer_item.c | 6 ++++++ libxfs/xfs_errortag.h | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/io/inject.c b/io/inject.c
index b8b0977..53286a3 100644
--- a/io/inject.c
+++ b/io/inject.c@@ -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_DELAYED_ATTR, "delayed_attr" }, { XFS_ERRTAG_MAX, NULL } }; int count;
diff --git a/libxfs/defer_item.c b/libxfs/defer_item.c
index 41cf921..6db4380 100644
--- a/libxfs/defer_item.c
+++ b/libxfs/defer_item.c@@ -135,6 +135,11 @@ xfs_trans_attr_finish_update( if (error) return error; + if (XFS_TEST_ERROR(false, args->dp->i_mount, XFS_ERRTAG_DELAYED_ATTR)) { + error = -EIO; + goto out; + } + switch (op) { case XFS_ATTR_OP_FLAGS_SET: args->op_flags |= XFS_DA_OP_ADDNAME;
@@ -149,6 +154,7 @@ xfs_trans_attr_finish_update( break; } +out: /* * Mark the transaction dirty, even on error. This ensures the * transaction is aborted, which:
diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h
index a23a52e..46f359c 100644
--- a/libxfs/xfs_errortag.h
+++ b/libxfs/xfs_errortag.h@@ -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_DELAYED_ATTR 39 +#define XFS_ERRTAG_MAX 40 /* * Random factors for above tags, 1 means always, 2 means 1/2 time, etc.
@@ -103,5 +104,6 @@ #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_DELAYED_ATTR 1 #endif /* __XFS_ERRORTAG_H_ */
--
2.7.4