* 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
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,
{
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;
{
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;
}
#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\"", \