diff --git a/common/filter b/common/filter
index 6a509d8b5..7e02ded37 100644
--- a/common/filter
+++ b/common/filter
@@ -662,5 +662,14 @@ _filter_trailing_whitespace()
 	sed -E -e "s/\s+$//"
 }
 
+# Catch -any- EIO error regardless of it's source and replace it with the
+# supplied error message.
+_filter_flakey_EIO()
+{
+	local message="$*"
+
+	sed -e "s#.*: Input\/output error#$message#"
+}
+
 # make sure this script returns success
 /bin/true
diff --git a/tests/btrfs/160 b/tests/btrfs/160
index 04ed1f176..c4a01d330 100755
--- a/tests/btrfs/160
+++ b/tests/btrfs/160
@@ -66,7 +66,8 @@ _dmerror_load_working_table
 
 # open again and call fsync
 echo "The following fsync should fail with EIO:"
-$XFS_IO_PROG -c fsync $testfile
+$XFS_IO_PROG -c fsync $testfile |& \
+		_filter_flakey_EIO "fsync: Input/output error"
 echo "done"
 
 # close file
diff --git a/tests/generic/252 b/tests/generic/252
index ddf950e34..2ad0524c2 100755
--- a/tests/generic/252
+++ b/tests/generic/252
@@ -66,7 +66,8 @@ $XFS_IO_PROG -f -c "pwrite -S 0x63 $bufsize 1" $testdir/file2 >> $seqres.full
 $XFS_IO_PROG -f -c "pwrite -S 0x63 -b $bufsize 0 $filesize" $TEST_DIR/moo >> $seqres.full
 _scratch_sync
 _dmerror_load_error_table
-$AIO_TEST -a $alignment -f DIRECT -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full
+$AIO_TEST -a $alignment -f DIRECT -b $bufsize $TEST_DIR/moo $testdir/file2 |& \
+		_filter_flakey_EIO "write missed bytes expect 8388608 got 0"
 _dmerror_load_working_table
 _dmerror_unmount
 _dmerror_mount
diff --git a/tests/generic/329 b/tests/generic/329
index e4300f92c..96a5ad54c 100755
--- a/tests/generic/329
+++ b/tests/generic/329
@@ -59,7 +59,8 @@ $XFS_IO_PROG -f -c "pwrite -S 0x63 $bufsize 1" $testdir/file2 >> $seqres.full
 $XFS_IO_PROG -f -c "pwrite -S 0x63 -b $bufsize 0 $filesize" $TEST_DIR/moo >> $seqres.full
 _scratch_sync
 _dmerror_load_error_table
-$AIO_TEST -a $alignment -f DIRECT -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full
+$AIO_TEST -a $alignment -f DIRECT -b $bufsize $TEST_DIR/moo $testdir/file2 |& \
+		_filter_flakey_EIO "write missed bytes expect 8388608 got 0"
 _dmerror_load_working_table
 _dmerror_unmount
 _dmerror_mount
diff --git a/tests/generic/331 b/tests/generic/331
index fe12ec4eb..704bb1283 100755
--- a/tests/generic/331
+++ b/tests/generic/331
@@ -59,8 +59,9 @@ $XFS_IO_PROG -f -c "pwrite -S 0x63 $bufsize 1" $testdir/file2 >> $seqres.full
 $XFS_IO_PROG -f -c "pwrite -S 0x63 -b $bufsize 0 $filesize" $TEST_DIR/moo >> $seqres.full
 _scratch_sync
 _dmerror_load_error_table
-$AIO_TEST -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full
-$XFS_IO_PROG -c "fdatasync" $testdir/file2
+$AIO_TEST -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full 2>&1
+$XFS_IO_PROG -c "fdatasync" $testdir/file2 |& \
+		_filter_flakey_EIO "fdatasync: Input/output error"
 _dmerror_load_working_table
 _dmerror_unmount
 _dmerror_mount
diff --git a/tests/generic/484 b/tests/generic/484
index 09c2c5598..ec50735a5 100755
--- a/tests/generic/484
+++ b/tests/generic/484
@@ -54,7 +54,8 @@ $XFS_IO_PROG -c "pwrite -W -q 0 $datalen" $testfile
 _dmerror_load_error_table
 
 # rewrite the data and call fdatasync
-$XFS_IO_PROG -c "pwrite -w -q 0 $datalen" $testfile
+$XFS_IO_PROG -c "pwrite -w -q 0 $datalen" $testfile |& \
+		_filter_flakey_EIO "fdatasync: Input/output error"
 
 # heal the device error
 _dmerror_load_working_table
diff --git a/tests/generic/743 b/tests/generic/743
index 228ba764e..efdeec82d 100755
--- a/tests/generic/743
+++ b/tests/generic/743
@@ -21,6 +21,7 @@ _cleanup()
 }
 
 # Import common functions.
+. ./common/filter
 . ./common/dmerror
 
 _fixed_by_kernel_commit 631426ba1d45 \
@@ -55,7 +56,8 @@ _dmerror_mount
 stat "$SCRATCH_MNT/a" >> $seqres.full
 echo read with IO errors
 _dmerror_load_error_table
-$TIMEOUT_PROG -s KILL 10s $XFS_IO_PROG -c "mmap -r 0 $filesz" -c "madvise -R 0 $filesz" "$SCRATCH_MNT/a"
+$TIMEOUT_PROG -s KILL 10s $XFS_IO_PROG -c "mmap -r 0 $filesz" -c "madvise -R 0 $filesz" "$SCRATCH_MNT/a" |& \
+		_filter_flakey_EIO "madvise: Bad address"
 _dmerror_load_working_table
 
 # success, all done
diff --git a/tests/xfs/237 b/tests/xfs/237
index 91f56d6c1..eb5dc5d2f 100755
--- a/tests/xfs/237
+++ b/tests/xfs/237
@@ -68,7 +68,8 @@ $XFS_IO_PROG -f -c "pwrite -S 0x63 $bufsize 1" $testdir/file2 >> $seqres.full
 $XFS_IO_PROG -f -c "pwrite -S 0x63 -b $bufsize 0 $filesize" $TEST_DIR/moo >> $seqres.full
 _scratch_sync
 _dmerror_load_error_table
-$AIO_TEST -a $alignment -f DIRECT -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full
+$AIO_TEST -a $alignment -f DIRECT -b $bufsize $TEST_DIR/moo $testdir/file2 |& \
+		_filter_flakey_EIO "write missed bytes expect 8388608 got 0"
 _dmerror_load_working_table
 _dmerror_unmount
 _dmerror_mount
diff --git a/tests/xfs/240 b/tests/xfs/240
index e95cf3f5d..8916828a8 100755
--- a/tests/xfs/240
+++ b/tests/xfs/240
@@ -64,8 +64,9 @@ $XFS_IO_PROG -f -c "pwrite -S 0x63 $bufsize 1" $testdir/file2 >> $seqres.full
 $XFS_IO_PROG -f -c "pwrite -S 0x63 -b $bufsize 0 $filesize" $TEST_DIR/moo >> $seqres.full
 _scratch_sync
 _dmerror_load_error_table
-$AIO_TEST -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full
-$XFS_IO_PROG -c "fdatasync" $testdir/file2
+$AIO_TEST -b $bufsize $TEST_DIR/moo $testdir/file2 >> $seqres.full 2>&1
+$XFS_IO_PROG -c "fdatasync" $testdir/file2 |& \
+		_filter_flakey_EIO "fdatasync: Input/output error"
 _dmerror_load_working_table
 _dmerror_unmount
 _dmerror_mount
