]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: move the guts of XFS_ERRORTAG_DELAY out of line
authorChristoph Hellwig <hch@lst.de>
Fri, 30 Jan 2026 05:19:19 +0000 (06:19 +0100)
committerCarlos Maiolino <cem@kernel.org>
Fri, 30 Jan 2026 09:41:42 +0000 (10:41 +0100)
Mirror what is done for the more common XFS_ERRORTAG_TEST version,
and also only look at the error tag value once now that we can
easily have a local variable.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hans Holmberg <hans.holmberg@wdc.com>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
fs/xfs/xfs_error.c
fs/xfs/xfs_error.h

index 52a1d51126e3eb13ae1f8899bb1e7d8752b3fd00..a6f160a4d0e906c0e76bcda4e017ef21859320ce 100644 (file)
@@ -144,6 +144,27 @@ xfs_errortag_test(
        return true;
 }
 
+void
+xfs_errortag_delay(
+       struct xfs_mount        *mp,
+       const char              *file,
+       int                     line,
+       unsigned int            error_tag)
+{
+       unsigned int            delay = mp->m_errortag[error_tag];
+
+       might_sleep();
+
+       if (!delay)
+               return;
+
+       xfs_warn_ratelimited(mp,
+"Injecting %ums delay at file %s, line %d, on filesystem \"%s\"",
+               delay, file, line,
+               mp->m_super->s_id);
+       mdelay(delay);
+}
+
 int
 xfs_errortag_add(
        struct xfs_mount        *mp,
index ec22546a8ca86179d2634f953e4bb7488cc8ffef..b40e7c671d2a0ca8c0c681eef836b21e1c86ee79 100644 (file)
@@ -40,19 +40,10 @@ bool xfs_errortag_test(struct xfs_mount *mp, const char *file, int line,
                unsigned int error_tag);
 #define XFS_TEST_ERROR(mp, tag)                \
        xfs_errortag_test((mp), __FILE__, __LINE__, (tag))
-bool xfs_errortag_enabled(struct xfs_mount *mp, unsigned int tag);
+void xfs_errortag_delay(struct xfs_mount *mp, const char *file, int line,
+               unsigned int error_tag);
 #define XFS_ERRORTAG_DELAY(mp, tag)            \
-       do { \
-               might_sleep(); \
-               if (!mp->m_errortag[tag]) \
-                       break; \
-               xfs_warn_ratelimited((mp), \
-"Injecting %ums delay at file %s, line %d, on filesystem \"%s\"", \
-                               (mp)->m_errortag[(tag)], __FILE__, __LINE__, \
-                               (mp)->m_super->s_id); \
-               mdelay((mp)->m_errortag[(tag)]); \
-       } while (0)
-
+       xfs_errortag_delay((mp), __FILE__, __LINE__, (tag))
 int xfs_errortag_add(struct xfs_mount *mp, unsigned int error_tag);
 int xfs_errortag_clearall(struct xfs_mount *mp);
 #else