xfs: Check for m_errortag initialization in xfs_errortag_test
While adding error injection into IO completion, I notice the lack of initialization check in xfs_errortag_test(), make the error injection mechanism unable to be used there. IO completion is executed a few times before the error injection mechanism is initialized, so to be safer, make xfs_errortag_test() check if the errortag is properly initialized. Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
50e0bdbe9f
commit
d04c241c66
|
@ -233,6 +233,17 @@ xfs_errortag_test(
|
|||
{
|
||||
unsigned int randfactor;
|
||||
|
||||
/*
|
||||
* To be able to use error injection anywhere, we need to ensure error
|
||||
* injection mechanism is already initialized.
|
||||
*
|
||||
* Code paths like I/O completion can be called before the
|
||||
* initialization is complete, but be able to inject errors in such
|
||||
* places is still useful.
|
||||
*/
|
||||
if (!mp->m_errortag)
|
||||
return false;
|
||||
|
||||
ASSERT(error_tag < XFS_ERRTAG_MAX);
|
||||
randfactor = mp->m_errortag[error_tag];
|
||||
if (!randfactor || prandom_u32() % randfactor)
|
||||
|
|
Loading…
Reference in New Issue