diff options
Diffstat (limited to 'fs/xfs')
| -rw-r--r-- | fs/xfs/xfs_error.c | 3 | ||||
| -rw-r--r-- | fs/xfs/xfs_error.h | 5 | 
2 files changed, 6 insertions, 2 deletions
diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c index ed999026766..c78cc6a3d87 100644 --- a/fs/xfs/xfs_error.c +++ b/fs/xfs/xfs_error.c @@ -58,6 +58,7 @@ xfs_error_trap(int e)  int	xfs_etest[XFS_NUM_INJECT_ERROR];  int64_t	xfs_etest_fsid[XFS_NUM_INJECT_ERROR];  char *	xfs_etest_fsname[XFS_NUM_INJECT_ERROR]; +int	xfs_error_test_active;  int  xfs_error_test(int error_tag, int *fsidp, char *expression, @@ -108,6 +109,7 @@ xfs_errortag_add(int error_tag, xfs_mount_t *mp)  			len = strlen(mp->m_fsname);  			xfs_etest_fsname[i] = kmem_alloc(len + 1, KM_SLEEP);  			strcpy(xfs_etest_fsname[i], mp->m_fsname); +			xfs_error_test_active++;  			return 0;  		}  	} @@ -137,6 +139,7 @@ xfs_errortag_clearall(xfs_mount_t *mp, int loud)  			xfs_etest_fsid[i] = 0LL;  			kmem_free(xfs_etest_fsname[i]);  			xfs_etest_fsname[i] = NULL; +			xfs_error_test_active--;  		}  	} diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h index c2c1a072bb8..f338847f80b 100644 --- a/fs/xfs/xfs_error.h +++ b/fs/xfs/xfs_error.h @@ -127,13 +127,14 @@ extern void xfs_corruption_error(const char *tag, int level,  #define	XFS_RANDOM_BMAPIFORMAT				XFS_RANDOM_DEFAULT  #ifdef DEBUG +extern int xfs_error_test_active;  extern int xfs_error_test(int, int *, char *, int, char *, unsigned long);  #define	XFS_NUM_INJECT_ERROR				10  #define XFS_TEST_ERROR(expr, mp, tag, rf)		\ -	((expr) || \ +	((expr) || (xfs_error_test_active && \  	 xfs_error_test((tag), (mp)->m_fixedfsid, "expr", __LINE__, __FILE__, \ -			(rf))) +			(rf))))  extern int xfs_errortag_add(int error_tag, xfs_mount_t *mp);  extern int xfs_errortag_clearall(xfs_mount_t *mp, int loud);  |