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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.