From: Dave Chinner <david@fromorbit.com>
To: Catherine Hoang <catherine.hoang@oracle.com>
Cc: linux-xfs@vger.kernel.org
Subject: Re: [RFC PATCH 1/2] xfs: add leaf split error tag
Date: Fri, 12 Nov 2021 10:17:08 +1100 [thread overview]
Message-ID: <20211111231708.GJ449541@dread.disaster.area> (raw)
In-Reply-To: <20211111001716.77336-2-catherine.hoang@oracle.com>
On Thu, Nov 11, 2021 at 12:17:15AM +0000, Catherine Hoang wrote:
> Add an error tag on xfs_da3_split to test log attribute recovery
> and replay.
>
> Signed-off-by: Catherine Hoang <catherine.hoang@oracle.com>
> ---
> fs/xfs/libxfs/xfs_da_btree.c | 6 ++++++
> fs/xfs/libxfs/xfs_errortag.h | 4 +++-
> fs/xfs/xfs_error.c | 3 +++
> 3 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c
> index dd7a2dbce1d1..000101783648 100644
> --- a/fs/xfs/libxfs/xfs_da_btree.c
> +++ b/fs/xfs/libxfs/xfs_da_btree.c
> @@ -22,6 +22,7 @@
> #include "xfs_trace.h"
> #include "xfs_buf_item.h"
> #include "xfs_log.h"
> +#include "xfs_errortag.h"
>
> /*
> * xfs_da_btree.c
> @@ -482,6 +483,11 @@ xfs_da3_split(
>
> trace_xfs_da_split(state->args);
>
> + if (XFS_TEST_ERROR(false, state->mp, XFS_ERRTAG_LEAF_SPLIT)) {
> + error = -EIO;
> + return error;
> + }
> +
> /*
> * 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/fs/xfs/libxfs/xfs_errortag.h b/fs/xfs/libxfs/xfs_errortag.h
> index c15d2340220c..31aeeb94dd5b 100644
> --- a/fs/xfs/libxfs/xfs_errortag.h
> +++ b/fs/xfs/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_LEAF_SPLIT 40
What leaf is being split?
This looks to be a DA btree split that it the error injection is
being applied to, not a allocbt, rmapbt, etc split. And it's not
really a "leaf split" because xfs_da3_split() walks the entire path
back up the tree splitting nodes as well.
So, really, it's a da tree split, not a generic "leaf split" error
injection point.
And, I suspect this won't always work as intended, because it can
trigger on directory operations as well as attribute ops. Hence it
could be difficult to direct this for testing attr fork operations
during stress at the attr fork....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2021-11-11 23:17 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-11 0:17 [RFC PATCH 0/2] xfs: add error tags for log attribute replay test Catherine Hoang
2021-11-11 0:17 ` [RFC PATCH 1/2] xfs: add leaf split error tag Catherine Hoang
2021-11-11 16:05 ` Darrick J. Wong
2021-11-11 23:17 ` Dave Chinner [this message]
2021-11-12 22:24 ` Allison Henderson
2021-11-11 0:17 ` [RFC PATCH 2/2] xfs: add leaf to node " Catherine Hoang
2021-11-11 16:07 ` Darrick J. Wong
2021-11-11 23:24 ` Dave Chinner
2021-11-12 22:24 ` Allison Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211111231708.GJ449541@dread.disaster.area \
--to=david@fromorbit.com \
--cc=catherine.hoang@oracle.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox