Re: [PATCH v2] generic/366: check minimum dio size correctly

Zorro Lang <[email protected]> Wed, 17 Jun 2026 17:32:55 +0800
Newsgroups org.kernel.vger.fstests
Message-ID <ajJpo0OzSNZHCGWC@zlang-mailbox>
On Wed, Jun 17, 2026 at 08:04:17AM +0200, Christoph Hellwig wrote:
> 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]>
> ---
> 
> Changes since v1:
>  - only calculate the block size once, based on a code snipplet from
>    Zorro Lang

Thanks Christoph, this version is good to me

Reviewed-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 271a01bc2eac..cb183c1bfe21 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.53.0
>