[PATCH 1/3] xfs/656: rearrange directio pread/pwrite for zoned filesystems

Christoph Hellwig <[email protected]> Fri, 10 Jul 2026 07:27:33 +0200
Newsgroups org.kernel.vger.fstests,org.kernel.vger.linux-xfs
Message-ID <[email protected]>
From: "Darrick J. Wong" <[email protected]>

On zoned filesystems, a write failure shuts down the filesystem, which
makes this test fail with:

 --- /run/fstests/bin/tests/xfs/656.out	2026-03-13 16:19:08.152939212 -0700
 +++ /run/fstests/logs/xfs/656.out.bad	2026-06-30 18:16:43.847849604 -0700
 @@ -1,10 +1,9 @@
  QA output created by 656
  Format and mount
  pwrite: Input/output error
 -pread: Input/output error
 +stat: Input/output error
  pread: Input/output error
  fsync: Input/output error
  VICTIM pos NUM len NUM: directio_write: Input/output error
 -VICTIM pos NUM len NUM: directio_read: Input/output error
  VICTIM pos NUM len NUM: buffered_read: Input/output error
  VICTIM pos NUM len NUM: buffered_write: Input/output error

Reorder the directio pread and pwrite to avoid this unnecessary failure.
Note that we cycle the mount between the direct and buffered io tests,
which is why we only need to fix the directio test.

Signed-off-by: "Darrick J. Wong" <[email protected]>
Signed-off-by: Christoph Hellwig <[email protected]>
---
 tests/xfs/656     | 2 +-
 tests/xfs/656.out | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/xfs/656 b/tests/xfs/656
index 3830d7193fcb..c01276eb384b 100755
--- a/tests/xfs/656
+++ b/tests/xfs/656
@@ -66,8 +66,8 @@ $XFS_IO_PROG -c 'healthmon -c -v' $SCRATCH_MNT >> $tmp.healthmon &
 healer_pid=$!
 sleep 1	# wait for program to start up
 _dmerror_load_error_table
-$XFS_IO_PROG -d -c 'pwrite -b 256k 12k 16k' $testfile >> $seqres.full
 $XFS_IO_PROG -d -c 'pread -b 256k 10g 16k' $testfile >> $seqres.full
+$XFS_IO_PROG -d -c 'pwrite -b 256k 12k 16k' $testfile >> $seqres.full
 _dmerror_load_working_table
 
 _dmerror_unmount
diff --git a/tests/xfs/656.out b/tests/xfs/656.out
index 83b2f5948a77..4d6633060acd 100644
--- a/tests/xfs/656.out
+++ b/tests/xfs/656.out
@@ -1,10 +1,10 @@
 QA output created by 656
 Format and mount
-pwrite: Input/output error
 pread: Input/output error
+pwrite: Input/output error
 pread: Input/output error
 fsync: Input/output error
-VICTIM pos NUM len NUM: directio_write: Input/output error
 VICTIM pos NUM len NUM: directio_read: Input/output error
+VICTIM pos NUM len NUM: directio_write: Input/output error
 VICTIM pos NUM len NUM: buffered_read: Input/output error
 VICTIM pos NUM len NUM: buffered_write: Input/output error
-- 
2.53.0