diff --git a/common/rc b/common/rc
index d5cf5201..9378ff26 100644
--- a/common/rc
+++ b/common/rc
@@ -4691,6 +4691,22 @@ _get_file_block_size()
 	esac
 }
 
+# Given a file path and a byte length of a file operation under test, ensure
+# that the length is an integer multiple of the file's allocation unit size.
+# In other words, skip the test unless (oplen ≡ alloc_unit mod 0).  This is
+# intended for file remapping operations.
+_require_congruent_file_oplen()
+{
+	local file="$1"
+	local alloc_unit=$(_get_file_block_size "$file")
+	local oplen="$2"
+
+	test $alloc_unit -gt $oplen && \
+		_notrun "$1: file alloc unit $alloc_unit larger than op length $oplen"
+	test $((oplen % alloc_unit)) -eq 0 || \
+		_notrun "$1: file alloc unit $alloc_unit not congruent with op length $oplen"
+}
+
 # Get the minimum block size of an fs.
 _get_block_size()
 {
diff --git a/tests/generic/031 b/tests/generic/031
index cbb2fc34..0d2e8268 100755
--- a/tests/generic/031
+++ b/tests/generic/031
@@ -25,6 +25,7 @@ testfile=$SCRATCH_MNT/testfile
 
 _scratch_mkfs > /dev/null 2>&1
 _scratch_mount
+_require_congruent_file_oplen $SCRATCH_MNT 4096
 
 $XFS_IO_PROG -f \
 	-c "pwrite 185332 55756" \
diff --git a/tests/generic/116 b/tests/generic/116
index b8816e31..7f83d994 100755
--- a/tests/generic/116
+++ b/tests/generic/116
@@ -31,6 +31,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $testdir $blksz
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file2 >> $seqres.full
 _test_cycle_mount
diff --git a/tests/generic/118 b/tests/generic/118
index 4fa2e1e3..2b2a1b48 100755
--- a/tests/generic/118
+++ b/tests/generic/118
@@ -32,6 +32,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $testdir $blksz
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x62 $((blksz * 2)) $((blksz * 6)) $testdir/file2 >> $seqres.full
 _test_cycle_mount
diff --git a/tests/generic/119 b/tests/generic/119
index fd4c3661..bcf0fdc5 100755
--- a/tests/generic/119
+++ b/tests/generic/119
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $testdir $blksz
 _pwrite_byte 0x61 0 $((blksz * 8)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x62 0 $((blksz * 8)) $testdir/file2 >> $seqres.full
 _pwrite_byte 0x63 0 $((blksz * 8)) $testdir/file3 >> $seqres.full
diff --git a/tests/generic/121 b/tests/generic/121
index 43137469..e9038240 100755
--- a/tests/generic/121
+++ b/tests/generic/121
@@ -31,6 +31,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file2 >> $seqres.full
 _test_cycle_mount
diff --git a/tests/generic/122 b/tests/generic/122
index fbf3f1f2..bb1b605d 100755
--- a/tests/generic/122
+++ b/tests/generic/122
@@ -31,6 +31,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $testdir $blksz
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x62 $((blksz * 2)) $((blksz * 6)) $testdir/file2 >> $seqres.full
 _test_cycle_mount
diff --git a/tests/generic/134 b/tests/generic/134
index ab76f046..58b81872 100755
--- a/tests/generic/134
+++ b/tests/generic/134
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 0 $((blksz + 37)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x61 0 $((blksz + 37)) $testdir/file2 >> $seqres.full
 _pwrite_byte 0x62 0 $((blksz + 37)) $testdir/file3 >> $seqres.full
diff --git a/tests/generic/136 b/tests/generic/136
index 98ebb0da..c5b80074 100755
--- a/tests/generic/136
+++ b/tests/generic/136
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 0 $((blksz + 37)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x61 0 $((blksz + 37)) $testdir/file2 >> $seqres.full
 _pwrite_byte 0x62 0 $((blksz + 37)) $testdir/file3 >> $seqres.full
diff --git a/tests/generic/137 b/tests/generic/137
index fb0071b1..8ee705fd 100755
--- a/tests/generic/137
+++ b/tests/generic/137
@@ -37,6 +37,7 @@ mkdir $testdir
 
 echo "Create the original file blocks"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 0 $blksz $testdir/file1 >> $seqres.full
 _pwrite_byte 0x62 $blksz $((blksz * 2)) $testdir/file1 >> $seqres.full
 
diff --git a/tests/generic/144 b/tests/generic/144
index 842d51f3..35f7a319 100755
--- a/tests/generic/144
+++ b/tests/generic/144
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $testdir $blksz
 _pwrite_byte 0x61 0 $((blksz * 5 + 37)) $testdir/file1 >> $seqres.full
 
 _reflink_range $testdir/file1 $blksz $testdir/file2 $blksz \
diff --git a/tests/generic/149 b/tests/generic/149
index 5343a139..108f1368 100755
--- a/tests/generic/149
+++ b/tests/generic/149
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 0 $blksz $testdir/file1 >> $seqres.full
 _pwrite_byte 0x62 $blksz $blksz $testdir/file1 >> $seqres.full
 _pwrite_byte 0x63 $((blksz * 2)) $blksz $testdir/file1 >> $seqres.full
diff --git a/tests/generic/162 b/tests/generic/162
index 0dc17f75..7b625e86 100755
--- a/tests/generic/162
+++ b/tests/generic/162
@@ -38,6 +38,7 @@ mkdir $testdir
 loops=512
 nr_loops=$((loops - 1))
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize files"
 echo >> $seqres.full
diff --git a/tests/generic/163 b/tests/generic/163
index 4a6c341e..91da69d3 100755
--- a/tests/generic/163
+++ b/tests/generic/163
@@ -38,6 +38,7 @@ mkdir $testdir
 loops=512
 nr_loops=$((loops - 1))
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize files"
 echo >> $seqres.full
diff --git a/tests/generic/164 b/tests/generic/164
index 8e0b630b..56c05e37 100755
--- a/tests/generic/164
+++ b/tests/generic/164
@@ -40,6 +40,7 @@ mkdir $testdir
 loops=512
 nr_loops=$((loops - 1))
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize files"
 echo >> $seqres.full
diff --git a/tests/generic/165 b/tests/generic/165
index d9e6a6e9..bc24bcab 100755
--- a/tests/generic/165
+++ b/tests/generic/165
@@ -41,6 +41,7 @@ mkdir $testdir
 loops=512
 nr_loops=$((loops - 1))
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize files"
 echo >> $seqres.full
diff --git a/tests/generic/168 b/tests/generic/168
index 575ff08c..bdc8f7a0 100755
--- a/tests/generic/168
+++ b/tests/generic/168
@@ -39,6 +39,7 @@ mkdir $testdir
 loops=1024
 nr_loops=$((loops - 1))
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize files"
 echo >> $seqres.full
diff --git a/tests/generic/170 b/tests/generic/170
index d323ab8f..593cfbb7 100755
--- a/tests/generic/170
+++ b/tests/generic/170
@@ -40,6 +40,7 @@ mkdir $testdir
 loops=1024
 nr_loops=$((loops - 1))
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize files"
 echo >> $seqres.full
diff --git a/tests/generic/181 b/tests/generic/181
index 2b4617be..5e5883df 100755
--- a/tests/generic/181
+++ b/tests/generic/181
@@ -33,6 +33,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 0 $((blksz * 256)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x62 0 $((blksz * 256)) $testdir/file2 >> $seqres.full
 _pwrite_byte 0x62 0 $((blksz * 2)) $testdir/file2.chk >> $seqres.full
diff --git a/tests/generic/183 b/tests/generic/183
index 77bfcfcb..c8614514 100755
--- a/tests/generic/183
+++ b/tests/generic/183
@@ -39,6 +39,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x61 0 $filesize $testdir/file1 >> $seqres.full
diff --git a/tests/generic/185 b/tests/generic/185
index 09469924..75dbc6b8 100755
--- a/tests/generic/185
+++ b/tests/generic/185
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x61 0 $filesize $testdir/file1 >> $seqres.full
diff --git a/tests/generic/186 b/tests/generic/186
index 37d88440..c5a1e13a 100755
--- a/tests/generic/186
+++ b/tests/generic/186
@@ -81,6 +81,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=1024
 filesize=$((blksz * nr))
 _pwrite_byte 0x61 0 $filesize $testdir/file1 >> $seqres.full
diff --git a/tests/generic/187 b/tests/generic/187
index 152e3cc2..be7a635a 100755
--- a/tests/generic/187
+++ b/tests/generic/187
@@ -82,6 +82,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=1024
 filesize=$((blksz * nr))
 _pwrite_byte 0x61 0 $filesize $testdir/file1 >> $seqres.full
diff --git a/tests/generic/188 b/tests/generic/188
index eab77b39..52a7f2d2 100755
--- a/tests/generic/188
+++ b/tests/generic/188
@@ -39,6 +39,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_unwritten $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/189 b/tests/generic/189
index 75cca42a..63faac6e 100755
--- a/tests/generic/189
+++ b/tests/generic/189
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_unwritten $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/190 b/tests/generic/190
index 9e220740..b336f12b 100755
--- a/tests/generic/190
+++ b/tests/generic/190
@@ -39,6 +39,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/191 b/tests/generic/191
index 78b9a3f0..1b12d9ac 100755
--- a/tests/generic/191
+++ b/tests/generic/191
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/194 b/tests/generic/194
index ff76438d..aa80560b 100755
--- a/tests/generic/194
+++ b/tests/generic/194
@@ -41,6 +41,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/195 b/tests/generic/195
index e087b99c..4f21201e 100755
--- a/tests/generic/195
+++ b/tests/generic/195
@@ -40,6 +40,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/196 b/tests/generic/196
index e2ae0410..366d0cad 100755
--- a/tests/generic/196
+++ b/tests/generic/196
@@ -39,6 +39,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_regular $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/197 b/tests/generic/197
index c5f80207..ac314186 100755
--- a/tests/generic/197
+++ b/tests/generic/197
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_regular $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/199 b/tests/generic/199
index 2a8cafcc..2246fdd1 100755
--- a/tests/generic/199
+++ b/tests/generic/199
@@ -46,6 +46,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_rainbow $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/200 b/tests/generic/200
index a1a78ef4..eeefeb50 100755
--- a/tests/generic/200
+++ b/tests/generic/200
@@ -46,6 +46,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _weave_reflink_rainbow $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/201 b/tests/generic/201
index 2598b44a..0a5a1d4a 100755
--- a/tests/generic/201
+++ b/tests/generic/201
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x61 0 $filesize $testdir/file1 >> $seqres.full
diff --git a/tests/generic/284 b/tests/generic/284
index 729da77a..f9eefff3 100755
--- a/tests/generic/284
+++ b/tests/generic/284
@@ -32,6 +32,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_regular $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/287 b/tests/generic/287
index 76ea26ba..61301368 100755
--- a/tests/generic/287
+++ b/tests/generic/287
@@ -33,6 +33,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_regular $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/289 b/tests/generic/289
index ed4f3268..52d03c35 100755
--- a/tests/generic/289
+++ b/tests/generic/289
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_unwritten $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/290 b/tests/generic/290
index 534fb24f..5352b9ba 100755
--- a/tests/generic/290
+++ b/tests/generic/290
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_unwritten $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/291 b/tests/generic/291
index 50119c03..1c589cf6 100755
--- a/tests/generic/291
+++ b/tests/generic/291
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/292 b/tests/generic/292
index 24cdab53..725fe057 100755
--- a/tests/generic/292
+++ b/tests/generic/292
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/293 b/tests/generic/293
index 0f1d8416..05997501 100755
--- a/tests/generic/293
+++ b/tests/generic/293
@@ -36,6 +36,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/295 b/tests/generic/295
index f66c1805..9ccf823f 100755
--- a/tests/generic/295
+++ b/tests/generic/295
@@ -37,6 +37,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _sweave_reflink_holes $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
diff --git a/tests/generic/352 b/tests/generic/352
index 3f504a29..608c6c81 100755
--- a/tests/generic/352
+++ b/tests/generic/352
@@ -29,6 +29,7 @@ _scratch_mkfs > /dev/null 2>&1
 _scratch_mount
 
 blocksize=$((128 * 1024))
+_require_congruent_file_oplen $SCRATCH_MNT $blocksize
 file="$SCRATCH_MNT/tmp"
 
 # Golden output is for $LOAD_FACTOR == 1 case
diff --git a/tests/generic/358 b/tests/generic/358
index 8c73ba36..91fe5e2b 100755
--- a/tests/generic/358
+++ b/tests/generic/358
@@ -39,6 +39,7 @@ mkdir $testdir
 
 blocks=64
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Initialize file"
 _pwrite_byte 0x61 0 $((blocks * blksz)) $testdir/file >> $seqres.full
diff --git a/tests/generic/359 b/tests/generic/359
index 25692058..8ef4f846 100755
--- a/tests/generic/359
+++ b/tests/generic/359
@@ -41,6 +41,7 @@ mkdir $testdir
 
 blocks=64
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=4
 halfway=$((blocks / 2 * blksz))
 quarter=$((blocks / 4 * blksz))
diff --git a/tests/generic/372 b/tests/generic/372
index b83aa598..b649f590 100755
--- a/tests/generic/372
+++ b/tests/generic/372
@@ -39,6 +39,7 @@ mkdir $testdir
 
 blocks=5
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 sz=$((blocks * blksz))
 
 echo "Create the original files"
diff --git a/tests/generic/414 b/tests/generic/414
index 01b9da8e..6416216d 100755
--- a/tests/generic/414
+++ b/tests/generic/414
@@ -39,6 +39,7 @@ mkdir $testdir
 
 blocks=32
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 sz=$((blocks * blksz))
 
 echo "Create the original files"
diff --git a/tests/generic/501 b/tests/generic/501
index 8c3f627b..cb158ba5 100755
--- a/tests/generic/501
+++ b/tests/generic/501
@@ -34,6 +34,7 @@ _scratch_mkfs >>$seqres.full 2>&1
 _require_metadata_journaling $SCRATCH_DEV
 _init_flakey
 _mount_flakey
+_require_congruent_file_oplen $SCRATCH_MNT 2097152
 
 # Use file sizes and offsets/lengths for the clone operation that are multiples
 # of 64Kb, so that the test works on machine with any page size.
diff --git a/tests/generic/515 b/tests/generic/515
index 2f3bd400..758bd639 100755
--- a/tests/generic/515
+++ b/tests/generic/515
@@ -30,6 +30,7 @@ _scratch_mount
 DONOR1=$SCRATCH_MNT/a
 TARGET=$SCRATCH_MNT/b
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 $XFS_IO_PROG -f -c "pwrite -S 0x72 0 $blksz" $DONOR1 >> $seqres.full
 
diff --git a/tests/generic/516 b/tests/generic/516
index 790ad532..e846ee24 100755
--- a/tests/generic/516
+++ b/tests/generic/516
@@ -31,6 +31,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file1 >> $seqres.full
 _pwrite_byte 0x61 $((blksz * 2)) $((blksz * 6)) $testdir/file2 >> $seqres.full
 _pwrite_byte 0x62 $(((blksz * 6) - 33)) 1 $testdir/file2 >> $seqres.full
diff --git a/tests/generic/540 b/tests/generic/540
index 38e00f97..da36939a 100755
--- a/tests/generic/540
+++ b/tests/generic/540
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x64 0 $((blksz * nr)) $testdir/file2 >> $seqres.full
diff --git a/tests/generic/541 b/tests/generic/541
index 89b2adad..a0f6cae3 100755
--- a/tests/generic/541
+++ b/tests/generic/541
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x64 0 $((blksz * nr)) $testdir/file2 >> $seqres.full
diff --git a/tests/generic/542 b/tests/generic/542
index e7682f59..530fb8e0 100755
--- a/tests/generic/542
+++ b/tests/generic/542
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x64 0 $((blksz * nr)) $testdir/file2 >> $seqres.full
diff --git a/tests/generic/543 b/tests/generic/543
index 624cfc41..1dad37fb 100755
--- a/tests/generic/543
+++ b/tests/generic/543
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 _pwrite_byte 0x64 0 $((blksz * nr)) $testdir/file2 >> $seqres.full
diff --git a/tests/generic/544 b/tests/generic/544
index 4dbaea4d..a4f654af 100755
--- a/tests/generic/544
+++ b/tests/generic/544
@@ -27,6 +27,7 @@ _scratch_mkfs > $seqres.full 2>&1
 _scratch_mount >> $seqres.full 2>&1
 
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=2
 filesize=$((blksz * nr))
 testdir=$SCRATCH_MNT/test-$seq
diff --git a/tests/generic/546 b/tests/generic/546
index 7723b980..9dc507be 100755
--- a/tests/generic/546
+++ b/tests/generic/546
@@ -39,6 +39,7 @@ _scratch_mkfs_sized $((512 * 1024 * 1024)) >> $seqres.full 2>&1
 _require_metadata_journaling $SCRATCH_DEV
 _init_flakey
 _mount_flakey
+_require_congruent_file_oplen $SCRATCH_MNT 4096
 
 # Create preallocated extent where we can write into
 $XFS_IO_PROG -f -c 'falloc 8k 64m' "$SCRATCH_MNT/foobar" >> $seqres.full
diff --git a/tests/generic/578 b/tests/generic/578
index 01929a28..d04cacb4 100755
--- a/tests/generic/578
+++ b/tests/generic/578
@@ -41,6 +41,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $TEST_DIR $blksz
 filesz=$((blksz * 4))
 _pwrite_byte 0x61 0 $filesz $testdir/file1 >> $seqres.full
 _cp_reflink $testdir/file1 $testdir/file2 >> $seqres.full
diff --git a/tests/generic/588 b/tests/generic/588
index 563ff65e..a915a73e 100755
--- a/tests/generic/588
+++ b/tests/generic/588
@@ -35,6 +35,8 @@ _require_metadata_journaling $SCRATCH_DEV
 _init_flakey
 _mount_flakey
 
+_require_congruent_file_oplen $SCRATCH_MNT 65536
+
 # Create our test file with two 256Kb extents, one at file offset 0 and the
 # other at file offset 256Kb.
 $XFS_IO_PROG -f -c "pwrite -S 0xa3 0 256K" \
diff --git a/tests/xfs/208 b/tests/xfs/208
index 66c3eda1..0fbb99c8 100755
--- a/tests/xfs/208
+++ b/tests/xfs/208
@@ -35,6 +35,7 @@ testdir=$SCRATCH_MNT/test-$seq
 mkdir $testdir
 
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=128
 filesize=$((blksz * nr))
 bufnr=16
diff --git a/tests/xfs/210 b/tests/xfs/210
index 6edc5606..2439967b 100755
--- a/tests/xfs/210
+++ b/tests/xfs/210
@@ -27,6 +27,7 @@ _require_xfs_io_command "cowextsize"
 echo "Format and mount"
 _scratch_mkfs > $seqres.full 2>&1
 _scratch_mount >> $seqres.full 2>&1
+_require_congruent_file_oplen $SCRATCH_MNT 65536
 
 testdir=$SCRATCH_MNT/test-$seq
 mkdir $testdir
diff --git a/tests/xfs/212 b/tests/xfs/212
index b133e09b..805a72af 100755
--- a/tests/xfs/212
+++ b/tests/xfs/212
@@ -30,6 +30,7 @@ testdir=$SCRATCH_MNT/test-$seq
 mkdir $testdir
 
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=16
 filesize=$((blksz * nr))
 bufnr=2
diff --git a/tests/xfs/215 b/tests/xfs/215
index 20217187..c07cdd1a 100755
--- a/tests/xfs/215
+++ b/tests/xfs/215
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/218 b/tests/xfs/218
index b834bbeb..cc3e1552 100755
--- a/tests/xfs/218
+++ b/tests/xfs/218
@@ -33,6 +33,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/219 b/tests/xfs/219
index b0eeb784..bd2c47bf 100755
--- a/tests/xfs/219
+++ b/tests/xfs/219
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/221 b/tests/xfs/221
index 09b2067d..cda99b5c 100755
--- a/tests/xfs/221
+++ b/tests/xfs/221
@@ -33,6 +33,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/223 b/tests/xfs/223
index 11dbad14..e22c1ba9 100755
--- a/tests/xfs/223
+++ b/tests/xfs/223
@@ -36,6 +36,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/224 b/tests/xfs/224
index f8bab07e..7e984a8a 100755
--- a/tests/xfs/224
+++ b/tests/xfs/224
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/225 b/tests/xfs/225
index 52a37d64..a07ef3f0 100755
--- a/tests/xfs/225
+++ b/tests/xfs/225
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/226 b/tests/xfs/226
index 826bd08d..1e566e2e 100755
--- a/tests/xfs/226
+++ b/tests/xfs/226
@@ -33,6 +33,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/228 b/tests/xfs/228
index f2f2f6a9..85a4abc5 100755
--- a/tests/xfs/228
+++ b/tests/xfs/228
@@ -41,6 +41,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/230 b/tests/xfs/230
index 15f6b684..2347a307 100755
--- a/tests/xfs/230
+++ b/tests/xfs/230
@@ -41,6 +41,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 real_blksz=$(_get_block_size $testdir)
diff --git a/tests/xfs/248 b/tests/xfs/248
index 32902cb7..cdb1da02 100755
--- a/tests/xfs/248
+++ b/tests/xfs/248
@@ -34,6 +34,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/249 b/tests/xfs/249
index 774d3bf2..0c4b0335 100755
--- a/tests/xfs/249
+++ b/tests/xfs/249
@@ -35,6 +35,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/251 b/tests/xfs/251
index 0b090180..1efa331d 100755
--- a/tests/xfs/251
+++ b/tests/xfs/251
@@ -36,6 +36,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/254 b/tests/xfs/254
index 40d176fc..d08ccc52 100755
--- a/tests/xfs/254
+++ b/tests/xfs/254
@@ -37,6 +37,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/255 b/tests/xfs/255
index 255f3b2f..8ec6f0be 100755
--- a/tests/xfs/255
+++ b/tests/xfs/255
@@ -36,6 +36,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/256 b/tests/xfs/256
index 1c703242..7157d532 100755
--- a/tests/xfs/256
+++ b/tests/xfs/256
@@ -37,6 +37,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/257 b/tests/xfs/257
index 6a58f0ac..c3100d60 100755
--- a/tests/xfs/257
+++ b/tests/xfs/257
@@ -38,6 +38,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/258 b/tests/xfs/258
index 2865cdf9..a3a130ea 100755
--- a/tests/xfs/258
+++ b/tests/xfs/258
@@ -39,6 +39,7 @@ mkdir $testdir
 
 echo "Create the original files"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 nr=64
 filesize=$((blksz * nr))
 $XFS_IO_PROG -c "cowextsize $((blksz * 16))" $testdir >> $seqres.full
diff --git a/tests/xfs/280 b/tests/xfs/280
index bc26e629..0d9a7958 100755
--- a/tests/xfs/280
+++ b/tests/xfs/280
@@ -30,6 +30,7 @@ mkdir $testdir
 
 blocks=5
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 sz=$((blocks * blksz))
 
 echo "Create the original files"
diff --git a/tests/xfs/312 b/tests/xfs/312
index 94f868fe..e4884787 100755
--- a/tests/xfs/312
+++ b/tests/xfs/312
@@ -36,6 +36,7 @@ sz=$((blksz * blks))
 echo "Format filesystem"
 _scratch_mkfs >/dev/null 2>&1
 _scratch_mount >> $seqres.full
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Create files"
 _pwrite_byte 0x66 0 $sz $SCRATCH_MNT/file1 >> $seqres.full
diff --git a/tests/xfs/315 b/tests/xfs/315
index 105515ab..9f6b39c8 100755
--- a/tests/xfs/315
+++ b/tests/xfs/315
@@ -37,6 +37,7 @@ sz=$((blksz * blks))
 echo "Format filesystem"
 _scratch_mkfs >/dev/null 2>&1
 _scratch_mount >> $seqres.full
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 $XFS_IO_PROG -c "cowextsize $sz" $SCRATCH_MNT
 
diff --git a/tests/xfs/322 b/tests/xfs/322
index 89a2f741..a2c3720e 100755
--- a/tests/xfs/322
+++ b/tests/xfs/322
@@ -36,6 +36,7 @@ sz=$((blksz * blks))
 echo "Format filesystem"
 _scratch_mkfs >/dev/null 2>&1
 _scratch_mount >> $seqres.full
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 
 echo "Create files"
 _pwrite_byte 0x66 0 $sz $SCRATCH_MNT/file1 >> $seqres.full
diff --git a/tests/xfs/329 b/tests/xfs/329
index e9a30d05..4cad686c 100755
--- a/tests/xfs/329
+++ b/tests/xfs/329
@@ -31,6 +31,7 @@ _scratch_mount >> "$seqres.full" 2>&1
 
 testdir="$SCRATCH_MNT/test-$seq"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 blks=3
 mkdir "$testdir"
 
diff --git a/tests/xfs/436 b/tests/xfs/436
index d99183cf..9e6ec937 100755
--- a/tests/xfs/436
+++ b/tests/xfs/436
@@ -42,6 +42,7 @@ _scratch_mount -o noquota >> "$seqres.full" 2>&1
 
 testdir="$SCRATCH_MNT/test-$seq"
 blksz=65536
+_require_congruent_file_oplen $SCRATCH_MNT $blksz
 blks=3
 mkdir "$testdir"
 
