mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
xfs: move the guts of XFS_ERRORTAG_DELAY out of line
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>
This commit is contained in:
committed by
Carlos Maiolino
parent
b8862a09d8
commit
e2d62bfd99
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user