* [RFC PATCH v3 1/2] xfsprogs: add leaf split error tag
2022-02-01 17:17 [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test Catherine Hoang
@ 2022-02-01 17:17 ` Catherine Hoang
2022-02-01 17:17 ` [RFC PATCH v3 2/2] xfsprogs: add leaf to node " Catherine Hoang
2022-02-01 20:06 ` [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test Darrick J. Wong
2 siblings, 0 replies; 5+ messages in thread
From: Catherine Hoang @ 2022-02-01 17:17 UTC (permalink / raw)
To: linux-xfs
Add an error tag on xfs_da3_split to test log attribute recovery
and replay.
Signed-off-by: Catherine Hoang <catherine.hoang@oracle.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
---
io/inject.c | 1 +
libxfs/xfs_da_btree.c | 3 +++
libxfs/xfs_errortag.h | 4 +++-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/io/inject.c b/io/inject.c
index 43b51db5..a7ad4df4 100644
--- a/io/inject.c
+++ b/io/inject.c
@@ -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_DA_LEAF_SPLIT, "da_leaf_split" },
{ XFS_ERRTAG_MAX, NULL }
};
int count;
diff --git a/libxfs/xfs_da_btree.c b/libxfs/xfs_da_btree.c
index f4e1fe80..6474f6cd 100644
--- a/libxfs/xfs_da_btree.c
+++ b/libxfs/xfs_da_btree.c
@@ -479,6 +479,9 @@ xfs_da3_split(
trace_xfs_da_split(state->args);
+ if (XFS_TEST_ERROR(false, state->mp, XFS_ERRTAG_DA_LEAF_SPLIT))
+ return -EIO;
+
/*
* Walk back up the tree splitting/inserting/adjusting as necessary.
* If we need to insert and there isn't room, split the node, then
diff --git a/libxfs/xfs_errortag.h b/libxfs/xfs_errortag.h
index c15d2340..6d06a502 100644
--- a/libxfs/xfs_errortag.h
+++ b/libxfs/xfs_errortag.h
@@ -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_DA_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_DA_LEAF_SPLIT 1
#endif /* __XFS_ERRORTAG_H_ */
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [RFC PATCH v3 2/2] xfsprogs: add leaf to node error tag
2022-02-01 17:17 [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test Catherine Hoang
2022-02-01 17:17 ` [RFC PATCH v3 1/2] xfsprogs: add leaf split error tag Catherine Hoang
@ 2022-02-01 17:17 ` Catherine Hoang
2022-02-01 20:06 ` [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test Darrick J. Wong
2 siblings, 0 replies; 5+ messages in thread
From: Catherine Hoang @ 2022-02-01 17:17 UTC (permalink / raw)
To: linux-xfs
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>
---
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 a7ad4df4..c211fcbc 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_LARP_LEAF_TO_NODE, "larp_leaf_to_node" },
{ XFS_ERRTAG_MAX, NULL }
};
int count;
diff --git a/libxfs/xfs_attr_leaf.c b/libxfs/xfs_attr_leaf.c
index 6c0997c5..0f40a1ec 100644
--- a/libxfs/xfs_attr_leaf.c
+++ b/libxfs/xfs_attr_leaf.c
@@ -1181,6 +1181,11 @@ xfs_attr3_leaf_to_node(
trace_xfs_attr_leaf_to_node(args);
+ if (XFS_TEST_ERROR(false, mp, XFS_ERRTAG_LARP_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 6d06a502..74b75319 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_LARP_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_LARP_LEAF_TO_NODE 1
#endif /* __XFS_ERRORTAG_H_ */
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test
2022-02-01 17:17 [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test Catherine Hoang
2022-02-01 17:17 ` [RFC PATCH v3 1/2] xfsprogs: add leaf split error tag Catherine Hoang
2022-02-01 17:17 ` [RFC PATCH v3 2/2] xfsprogs: add leaf to node " Catherine Hoang
@ 2022-02-01 20:06 ` Darrick J. Wong
2022-02-01 22:05 ` Catherine Hoang
2 siblings, 1 reply; 5+ messages in thread
From: Darrick J. Wong @ 2022-02-01 20:06 UTC (permalink / raw)
To: Catherine Hoang; +Cc: linux-xfs
On Tue, Feb 01, 2022 at 05:17:53PM +0000, Catherine Hoang wrote:
> Hi all,
>
> These are the corresponding userspace changes for the new log attribute
> replay test. These are built on top of Allison’s logged attribute patch
> sets, which can be viewed here:
> https://github.com/allisonhenderson/xfs_work/tree/delayed_attrs_xfsprogs_v26_extended
>
> This set adds the new error tags da_leaf_split and larp_leaf_to_node,
> which are used to inject errors in the tests.
>
> v2->v3:
> Rename larp_leaf_split to da_leaf_split
With the XFS_ERRTAG_LARP_LEAF_TO_NODE -> XFS_ERRTAG_ATTR_LEAF_TO_NODE
change made, you can add:
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
For the whole series.
--D
>
> Suggestions and feedback are appreciated!
>
> Catherine
>
>
> Catherine Hoang (2):
> xfsprogs: add leaf split error tag
> xfsprogs: add leaf to node error tag
>
> io/inject.c | 2 ++
> libxfs/xfs_attr_leaf.c | 5 +++++
> libxfs/xfs_da_btree.c | 3 +++
> libxfs/xfs_errortag.h | 6 +++++-
> 4 files changed, 15 insertions(+), 1 deletion(-)
>
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test
2022-02-01 20:06 ` [RFC PATCH v3 0/2] xfsprogs: add error tags for log attribute replay test Darrick J. Wong
@ 2022-02-01 22:05 ` Catherine Hoang
0 siblings, 0 replies; 5+ messages in thread
From: Catherine Hoang @ 2022-02-01 22:05 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: linux-xfs
> On Feb 1, 2022, at 12:06 PM, Darrick J. Wong <djwong@kernel.org> wrote:
>
> On Tue, Feb 01, 2022 at 05:17:53PM +0000, Catherine Hoang wrote:
>> Hi all,
>>
>> These are the corresponding userspace changes for the new log attribute
>> replay test. These are built on top of Allison’s logged attribute patch
>> sets, which can be viewed here:
>> https://urldefense.com/v3/__https://github.com/allisonhenderson/xfs_work/tree/delayed_attrs_xfsprogs_v26_extended__;!!ACWV5N9M2RV99hQ!e2WVNIakDohiZPdPKi-YzSjukd97AcL-PAGBteXwqTgvz2mtn0jADrAQbq-Js7j8A1E$
>>
>> This set adds the new error tags da_leaf_split and larp_leaf_to_node,
>> which are used to inject errors in the tests.
>>
>> v2->v3:
>> Rename larp_leaf_split to da_leaf_split
>
> With the XFS_ERRTAG_LARP_LEAF_TO_NODE -> XFS_ERRTAG_ATTR_LEAF_TO_NODE
> change made, you can add:
>
> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
>
> For the whole series.
>
> --D
Sure, will change that. Thanks!
>
>>
>> Suggestions and feedback are appreciated!
>>
>> Catherine
>>
>>
>> Catherine Hoang (2):
>> xfsprogs: add leaf split error tag
>> xfsprogs: add leaf to node error tag
>>
>> io/inject.c | 2 ++
>> libxfs/xfs_attr_leaf.c | 5 +++++
>> libxfs/xfs_da_btree.c | 3 +++
>> libxfs/xfs_errortag.h | 6 +++++-
>> 4 files changed, 15 insertions(+), 1 deletion(-)
>>
>> --
>> 2.25.1
>>
^ permalink raw reply [flat|nested] 5+ messages in thread