From: "Darrick J. Wong" <djwong@kernel.org>
To: Christoph Hellwig <hch@lst.de>
Cc: Carlos Maiolino <cem@kernel.org>,
Hans Holmberg <hans.holmberg@wdc.com>,
linux-xfs@vger.kernel.org
Subject: Re: [PATCH 03/10] xfs: don't validate error tags in the I/O path
Date: Tue, 27 Jan 2026 17:33:36 -0800 [thread overview]
Message-ID: <20260128013336.GC5945@frogsfrogsfrogs> (raw)
In-Reply-To: <20260127160619.330250-4-hch@lst.de>
On Tue, Jan 27, 2026 at 05:05:43PM +0100, Christoph Hellwig wrote:
> We can trust XFS developers enough to not pass random stuff to
> XFS_ERROR_TEST/DELAY. Open code the validity check in xfs_errortag_add,
> which is the only place that receives unvalidated error tag values from
> user space, and drop the now pointless xfs_errortag_enabled helper.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
That seems reasonable; these are debug knobs after all.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> ---
> fs/xfs/libxfs/xfs_errortag.h | 2 +-
> fs/xfs/xfs_error.c | 38 ++++++++++--------------------------
> fs/xfs/xfs_error.h | 2 +-
> 3 files changed, 12 insertions(+), 30 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_errortag.h b/fs/xfs/libxfs/xfs_errortag.h
> index 57e47077c75a..b7d98471684b 100644
> --- a/fs/xfs/libxfs/xfs_errortag.h
> +++ b/fs/xfs/libxfs/xfs_errortag.h
> @@ -53,7 +53,7 @@
> * Drop-writes support removed because write error handling cannot trash
> * pre-existing delalloc extents in any useful way anymore. We retain the
> * definition so that we can reject it as an invalid value in
> - * xfs_errortag_valid().
> + * xfs_errortag_add().
> */
> #define XFS_ERRTAG_DROP_WRITES 28
> #define XFS_ERRTAG_LOG_BAD_CRC 29
> diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c
> index dfa4abf9fd1a..52a1d51126e3 100644
> --- a/fs/xfs/xfs_error.c
> +++ b/fs/xfs/xfs_error.c
> @@ -125,30 +125,6 @@ xfs_errortag_del(
> xfs_sysfs_del(&mp->m_errortag_kobj);
> }
>
> -static bool
> -xfs_errortag_valid(
> - unsigned int error_tag)
> -{
> - if (error_tag >= XFS_ERRTAG_MAX)
> - return false;
> -
> - /* Error out removed injection types */
> - if (error_tag == XFS_ERRTAG_DROP_WRITES)
> - return false;
> - return true;
> -}
> -
> -bool
> -xfs_errortag_enabled(
> - struct xfs_mount *mp,
> - unsigned int tag)
> -{
> - if (!xfs_errortag_valid(tag))
> - return false;
> -
> - return mp->m_errortag[tag] != 0;
> -}
> -
> bool
> xfs_errortag_test(
> struct xfs_mount *mp,
> @@ -158,9 +134,6 @@ xfs_errortag_test(
> {
> unsigned int randfactor;
>
> - if (!xfs_errortag_valid(error_tag))
> - return false;
> -
> randfactor = mp->m_errortag[error_tag];
> if (!randfactor || get_random_u32_below(randfactor))
> return false;
> @@ -178,8 +151,17 @@ xfs_errortag_add(
> {
> BUILD_BUG_ON(ARRAY_SIZE(xfs_errortag_random_default) != XFS_ERRTAG_MAX);
>
> - if (!xfs_errortag_valid(error_tag))
> + if (error_tag >= XFS_ERRTAG_MAX)
> + return -EINVAL;
> +
> + /* Error out removed injection types */
> + switch (error_tag) {
> + case XFS_ERRTAG_DROP_WRITES:
> return -EINVAL;
> + default:
> + break;
> + }
> +
> mp->m_errortag[error_tag] = xfs_errortag_random_default[error_tag];
> return 0;
> }
> diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h
> index 3a78c8dfaec8..ec22546a8ca8 100644
> --- a/fs/xfs/xfs_error.h
> +++ b/fs/xfs/xfs_error.h
> @@ -44,7 +44,7 @@ bool xfs_errortag_enabled(struct xfs_mount *mp, unsigned int tag);
> #define XFS_ERRORTAG_DELAY(mp, tag) \
> do { \
> might_sleep(); \
> - if (!xfs_errortag_enabled((mp), (tag))) \
> + if (!mp->m_errortag[tag]) \
> break; \
> xfs_warn_ratelimited((mp), \
> "Injecting %ums delay at file %s, line %d, on filesystem \"%s\"", \
> --
> 2.47.3
>
>
next prev parent reply other threads:[~2026-01-28 1:33 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-27 16:05 stats and error injection for zoned GC Christoph Hellwig
2026-01-27 16:05 ` [PATCH 01/10] xfs: fix the errno sign for the xfs_errortag_{add,clearall} stubs Christoph Hellwig
2026-01-28 1:31 ` Darrick J. Wong
2026-01-28 10:50 ` Carlos Maiolino
2026-01-28 12:12 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 02/10] xfs: allocate m_errortag early Christoph Hellwig
2026-01-28 1:32 ` Darrick J. Wong
2026-01-28 3:42 ` Christoph Hellwig
2026-01-28 11:02 ` Carlos Maiolino
2026-01-28 12:12 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 03/10] xfs: don't validate error tags in the I/O path Christoph Hellwig
2026-01-28 1:33 ` Darrick J. Wong [this message]
2026-01-28 11:08 ` Carlos Maiolino
2026-01-28 12:14 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 04/10] xfs: move the guts of XFS_ERRORTAG_DELAY out of line Christoph Hellwig
2026-01-28 1:35 ` Darrick J. Wong
2026-01-28 3:44 ` Christoph Hellwig
2026-01-28 5:02 ` Darrick J. Wong
2026-01-28 5:03 ` Christoph Hellwig
2026-01-28 11:18 ` Carlos Maiolino
2026-01-28 14:10 ` Christoph Hellwig
2026-01-28 16:09 ` Darrick J. Wong
2026-01-28 17:43 ` Carlos Maiolino
2026-01-28 11:13 ` Carlos Maiolino
2026-01-28 12:14 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 05/10] xfs: use WRITE_ONCE/READ_ONCE for m_errortag Christoph Hellwig
2026-01-28 1:36 ` Darrick J. Wong
2026-01-28 11:21 ` Carlos Maiolino
2026-01-28 12:15 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 06/10] xfs: allow setting errortags at mount time Christoph Hellwig
2026-01-28 1:37 ` Darrick J. Wong
2026-01-28 3:45 ` Christoph Hellwig
2026-01-28 5:07 ` Darrick J. Wong
2026-01-28 5:12 ` Christoph Hellwig
2026-01-28 11:30 ` Carlos Maiolino
2026-01-28 14:11 ` Christoph Hellwig
2026-01-28 16:11 ` Darrick J. Wong
2026-01-28 16:13 ` Christoph Hellwig
2026-01-28 16:16 ` Darrick J. Wong
2026-01-28 17:48 ` Carlos Maiolino
2026-01-28 12:15 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 07/10] xfs: don't mark all discard issued by zoned GC as sync Christoph Hellwig
2026-01-28 1:38 ` Darrick J. Wong
2026-01-28 3:47 ` Christoph Hellwig
2026-01-28 11:30 ` Carlos Maiolino
2026-01-28 12:15 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 08/10] xfs: refactor zone reset handling Christoph Hellwig
2026-01-28 1:39 ` Darrick J. Wong
2026-01-28 11:34 ` Carlos Maiolino
2026-01-28 12:16 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 09/10] xfs: add zone reset error injection Christoph Hellwig
2026-01-28 1:39 ` Darrick J. Wong
2026-01-28 11:35 ` Carlos Maiolino
2026-01-28 12:19 ` Hans Holmberg
2026-01-27 16:05 ` [PATCH 10/10] xfs: add sysfs stats for zoned GC Christoph Hellwig
2026-01-28 1:40 ` Darrick J. Wong
2026-01-28 11:37 ` Carlos Maiolino
2026-01-28 12:53 ` Hans Holmberg
2026-01-28 14:12 ` hch
2026-01-28 15:11 ` Hans Holmberg
2026-01-28 15:12 ` hch
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=20260128013336.GC5945@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=cem@kernel.org \
--cc=hans.holmberg@wdc.com \
--cc=hch@lst.de \
--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