[PATCH] fuzzy: skip online scrub and health checks if not supported

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



Commit a27e6e6f4c18 introduced xfs health checking on no-repair fuzz,
which in turn requires scrub to be run before that. The health checks
are done only if scrub returns with an error (which is expected as an
indication that fuzzed metadata errors were picked up), but the code
does not discern between xfs_scrub returning an error because of
uncorrected metadata vs failing because the kernel does not support
scrub at all.

This causes all tests that do fuzzing with no-repair strategy to fail on
kernels compiled without online scrub support (CONFIG_XFS_ONLINE_SCRUB).

Skip scrub and health checks altogether, if the kernel does not support
it, since the tests are still valuable.

Fixes: a27e6e6f4c18 ("common: check xfs health after doing an online scrub")
Signed-off-by: Anthony Iliopoulos <ailiop@xxxxxxxx>
---
 common/fuzzy | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/common/fuzzy b/common/fuzzy
index 4365e7343e92..a78a354142df 100644
--- a/common/fuzzy
+++ b/common/fuzzy
@@ -422,6 +422,12 @@ __scratch_xfs_fuzz_field_norepair() {
 		return 1
 	fi
 
+	# Skip scrub and health check if scrub is not supported
+	if ! _supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV; then
+		__scratch_xfs_fuzz_unmount
+		return 0
+	fi
+
 	# Make sure online scrub will catch whatever we fuzzed
 	__fuzz_notify "++ Detect fuzzed field (online)"
 	_scratch_scrub -n -a 1 -e continue 2>&1
-- 
2.40.0




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux