[RFC PATCH v4 01/11] generic/366: check minimum dio size correctly

Artem Blagodarenko <[email protected]> Mon, 27 Jul 2026 17:13:34 -0400
Newsgroups org.kernel.vger.linux-ext4
Message-ID <[email protected]>
From: Christoph Hellwig <[email protected]>

min_dio_alignment requires the file system to be checked to be mounted,
so move the call into the main loop.  Drop the pointless blocksize
argument to _require_odirect, which is only tested on the test device.

Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Zorro Lang <[email protected]>
Signed-off-by: Zorro Lang <[email protected]>
---
 tests/generic/366 | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/tests/generic/366 b/tests/generic/366
index 271a01bc..cb183c1b 100755
--- a/tests/generic/366
+++ b/tests/generic/366
@@ -20,7 +20,7 @@ _begin_fstest auto quick rw
 . ./common/filter
 
 _require_scratch
-_require_odirect 512	# see fio job1 config below
+_require_odirect
 _require_aio
 
 _fixed_by_fs_commit btrfs xxxxxxxxxxxx \
@@ -30,7 +30,7 @@ iterations=$((32 * LOAD_FACTOR))
 
 fio_config=$tmp.fio
 fio_out=$tmp.fio.out
-blksz=`$here/src/min_dio_alignment $SCRATCH_MNT $SCRATCH_DEV`
+
 cat >$fio_config <<EOF
 [global]
 bs=8k
@@ -57,9 +57,19 @@ filename=file1
 EOF
 _require_fio $fio_config
 
+blksz=""
+
 for (( i = 0; i < $iterations; i++)); do
 	_scratch_mkfs >>$seqres.full 2>&1
 	_scratch_mount
+
+	if [ -z "$blksz" ]; then
+		blksz=`$here/src/min_dio_alignment $SCRATCH_MNT $SCRATCH_DEV`
+		if [[ $blksz -gt 512 ]]; then
+			_notrun "512 byte dio alignment required"
+		fi
+	fi
+
 	# There's a known EIO failure to report collisions between directio and buffered
 	# writes to userspace, refer to upstream linux 5a9d929d6e13. So ignore EIO error
 	# at here.
-- 
2.43.7