* Re: [PATCH 2/2] xfs/216: disable all concurrency scaling
From: Christoph Hellwig @ 2026-06-26 4:53 UTC (permalink / raw)
To: Zorro Lang
Cc: Darrick J. Wong, Lukas Herbolt, Eric Sandeen,
Shin'ichiro Kawasaki, linux-xfs, fstests
In-Reply-To: <20260619050937.444488-3-hch@lst.de>
I'll retract this patch in favour of the btrfs fix from Darrick.
We'll still need patch 1, though.
^ permalink raw reply
* Re: [PATCH 2/2] xfs/21[67]: fix mkfs log concurrency detection
From: Christoph Hellwig @ 2026-06-26 4:52 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: zlang, fstests, hch, linux-xfs
In-Reply-To: <178240619668.1665857.17134786745403757824.stgit@frogsfrogsfrogs>
Looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply
* Re: [PATCH 1/2] common/xfs: fix _scratch_mkfs_xfs_supports_concurrency
From: Christoph Hellwig @ 2026-06-26 4:52 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: zlang, fstests, hch, linux-xfs
In-Reply-To: <178240619650.1665857.270820682280764430.stgit@frogsfrogsfrogs>
Looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply
* Re: [PATCH] btrfs: skip tests that fail when autodefrag is enabled
From: Anand Suveer Jain @ 2026-06-25 22:36 UTC (permalink / raw)
To: fdmanana, fstests; +Cc: linux-btrfs, Filipe Manana
In-Reply-To: <f0dedcfbe5d78d950325b293cfbb9d4fbab49a55.1782406920.git.fdmanana@suse.com>
LGTM
Reviewed-by: Anand Jain <asj@kernel.org>
^ permalink raw reply
* [PATCH] btrfs: skip tests that fail when autodefrag is enabled
From: fdmanana @ 2026-06-25 19:20 UTC (permalink / raw)
To: fstests; +Cc: linux-btrfs, Filipe Manana
From: Filipe Manana <fdmanana@suse.com>
A couple tests, btrfs/004 and btrfs/308, fail if we pass "-o autodefrag"
in MOUNT_OPTIONS, due to changes in extent layouts. So make sure the
tests are skipped if autodefrag is enabled.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
common/btrfs | 7 +++++++
tests/btrfs/004 | 3 +++
tests/btrfs/308 | 2 ++
3 files changed, 12 insertions(+)
diff --git a/common/btrfs b/common/btrfs
index 30288f07..a75fbf1c 100644
--- a/common/btrfs
+++ b/common/btrfs
@@ -141,6 +141,13 @@ _require_btrfs_no_nodatasum()
fi
}
+_require_btrfs_no_autodefrag()
+{
+ if _normalize_mount_options "$MOUNT_OPTIONS" | grep -q "autodefrag"; then
+ _notrun "This test requires autodefrag to be disabled"
+ fi
+}
+
_require_btrfs_free_space_tree()
{
_scratch_mkfs > /dev/null 2>&1
diff --git a/tests/btrfs/004 b/tests/btrfs/004
index 06eedde2..1c8b06f5 100755
--- a/tests/btrfs/004
+++ b/tests/btrfs/004
@@ -30,6 +30,9 @@ _require_no_large_scratch_dev
_require_btrfs_command inspect-internal logical-resolve
_require_btrfs_command inspect-internal inode-resolve
_require_command "$FILEFRAG_PROG" filefrag
+# Autodefrag will randomly change the extent layout so filefrag can give us
+# different results from what we expect.
+_require_btrfs_no_autodefrag
FILEFRAG_FILTER='
if (/blocks? of (\d+) bytes/) {
diff --git a/tests/btrfs/308 b/tests/btrfs/308
index 3c8d410a..c4ccaa0f 100755
--- a/tests/btrfs/308
+++ b/tests/btrfs/308
@@ -22,6 +22,8 @@ _require_btrfs_fs_feature "free_space_tree"
_require_btrfs_free_space_tree
_require_btrfs_no_compress
_require_btrfs_no_nodatacow
+# We test for a specific stripe layout and autodefrag will change it.
+_require_btrfs_no_autodefrag
test $(_get_page_size) -eq 4096 || _notrun "this tests requires 4k pagesize"
--
2.47.2
^ permalink raw reply related
* Re: [PATCH 2/2] generic/740: add --force option to mkfs.ntfs
From: Darrick J. Wong @ 2026-06-25 18:45 UTC (permalink / raw)
To: David Timber; +Cc: Zorro Lang, Christoph Hellwig, fstests
In-Reply-To: <20260618192236.654082-2-dxdt@dev.snart.me>
On Fri, Jun 19, 2026 at 04:22:36AM +0900, David Timber wrote:
> mkntfs refuses to format the target if it's backed by a "real" device
> but not a partition to maintain compatibility with Windows. When
> formatting the scratch device in NTFS for testing, this behaviour has
> to be overridden so that any type of blockdev can be used as a scratch
> device.
>
> Signed-off-by: David Timber <dxdt@dev.snart.me>
> ---
> tests/generic/740 | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tests/generic/740 b/tests/generic/740
> index 4f8bf099..718d983d 100755
> --- a/tests/generic/740
> +++ b/tests/generic/740
> @@ -72,8 +72,10 @@ do
> postargs=2000
> ;;
> ntfs)
> - # "quick" format that doesn't zero the entire device
> - postargs="--quick"
> + # "quick" format that doesn't zero the entire device. Use -F so
"Use --force..." ?
--D
> + # that NTFS-3G mkfs formats the volume even if the scratch
> + # blockdev is not a partition.
> + postargs="--quick --force"
> ;;
> reiser4)
> preop="echo y |"
> --
> 2.54.0
>
>
^ permalink raw reply
* Re: [PATCH 1/2] generic/740: set env for mkfs.exfat
From: Darrick J. Wong @ 2026-06-25 18:45 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: David Timber, Zorro Lang, fstests
In-Reply-To: <20260619045306.GA24829@lst.de>
On Fri, Jun 19, 2026 at 06:53:06AM +0200, Christoph Hellwig wrote:
> On Fri, Jun 19, 2026 at 04:22:35AM +0900, David Timber wrote:
> > Foreign filesystem detection is added in exfatprogs version 1.4.1. To
> > maintain backward compatibility, mkfs.exfat refuses to format the device
> > only when it's run from terminal with a tty associated to it.
> >
> > This is similar to how e2fsprogs work around the issue. However,
> > with exfatprogs, this behaviour can be overridden with the special
> > environment variable EXFAT_TTY_OVERRIDE to simulate shell invocation by
> > user.
> >
> > Signed-off-by: David Timber <dxdt@dev.snart.me>
> > ---
> > tests/generic/740 | 15 ++++++++++++++-
> > 1 file changed, 14 insertions(+), 1 deletion(-)
> >
> > diff --git a/tests/generic/740 b/tests/generic/740
> > index ce55200f..4f8bf099 100755
> > --- a/tests/generic/740
> > +++ b/tests/generic/740
> > @@ -28,6 +28,18 @@ _require_block_device "${SCRATCH_DEV}"
> > # not all the FS support zoned block device
> > _require_non_zoned_device "${SCRATCH_DEV}"
> >
> > +mkfs_preop=""
> > +mkfs_preargs=""
> > +mkfs_postargs=""
> > +
> > +case "$FSTYP" in
> > +exfat)
> > + # For backward compatibility, mkfs.exfat refuses to format only when run
> > + # from a tty. This env var should override the behaviour if supported.
> > + mkfs_preop="EXFAT_TTY_OVERRIDE=1"
> > + ;;
> > +esac
> > +
> > echo "Silence is golden."
> > for fs in `echo ${MKFS_PROG}.* | sed -e "s:${MKFS_PROG}.::g"`
> > do
> > @@ -83,7 +95,8 @@ do
> > # next, ensure we don't overwrite it
> >
> > echo "=== Attempting $FSTYP overwrite of $fs..." >>$seqres.full
> > - ${MKFS_PROG} -t $FSTYP $SCRATCH_DEV >>$seqres.full 2>&1
> > + eval $mkfs_preop ${MKFS_PROG} -t $FSTYP $mkfs_preargs $SCRATCH_DEV $mkfs_postargs \
>
> breaking up the long line still would be nice here, i.e. keep at 80
> characters. Else looks good.
I wonder why we don't just redirect stdin from /dev/null, it's not like
we want to capture user input anyway...
--D
^ permalink raw reply
* Re: [PATCH] generic/645: Confirm availability of free inodes
From: Darrick J. Wong @ 2026-06-25 18:42 UTC (permalink / raw)
To: Ojaswin Mujoo; +Cc: Zorro Lang, fstests, Disha Goel
In-Reply-To: <20260617054216.3186441-1-ojaswin@linux.ibm.com>
On Wed, Jun 17, 2026 at 11:12:16AM +0530, Ojaswin Mujoo wrote:
> When running generic/645 with ext4 using 64k block size + bigalloc, the
> test fails with ENOSPC because the filesystem runs out of inodes before
> the test completes.
>
> The test creates approximately 10,001 files, however, in this particular
> configuration a standard 5G FS only has around ~5100 inodes resulting in
> the ENOSPC failure.
>
> Add a check using _get_free_inode() to verify sufficient inodes are
> available before running the test, else skip it.
>
> Reported-by: Disha Goel <disgoel@linux.ibm.com>
> Signed-off-by: Ojaswin Mujoo <ojaswin@linux.ibm.com>
> ---
> tests/generic/645 | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/tests/generic/645 b/tests/generic/645
> index d6eb75e6..944b33db 100755
> --- a/tests/generic/645
> +++ b/tests/generic/645
> @@ -19,6 +19,12 @@ _require_chown
> _wants_kernel_commit dacfd001eaf2 \
> "fs/mnt_idmapping.c: Return -EINVAL when no map is written"
>
> +_free_inodes=$(_get_free_inode $TEST_DIR)
> +if [ $_free_inodes -ne 0 ] && [ $_free_inodes -lt 10001 ]; then
I'm assuming the > 0 check here is to cover weird filesystems like fat
that don't advertise any inodes? /me wonders if that ought to be a
common helper where we can record that justification:
_require_free_inodes() {
local path="$1"
local nr="$2"
local _free_inodes=$(_get_free_inode "$path")
# Weird filesystems like vfat don't report any inodes, so we
# can't check for sufficient free inodes; IOWs, FAFO.
test "$_free_inodes" -eq 0 && return
test "$_free_inodes" -lt "$nr" && \
_notrun "Insufficient free inodes ($_free_inodes), need at least $nr"
}
_require_free_inodes $TEST_DIR 10001
(maybe clean up the comment a bit)
--D
> + _notrun "Insufficient free inodes ($_free_inodes), need at least 10001"
> +fi
> +
> echo "Silence is golden"
>
> $here/src/vfs/vfstest --test-nested-userns \
> --
> 2.53.0
>
>
^ permalink raw reply
* Re: [PATCH 2/2] xfs/216: disable all concurrency scaling
From: Darrick J. Wong @ 2026-06-25 16:53 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Zorro Lang, Lukas Herbolt, Eric Sandeen, Shin'ichiro Kawasaki,
linux-xfs, fstests
In-Reply-To: <20260625132251.GA24598@lst.de>
On Thu, Jun 25, 2026 at 03:22:51PM +0200, Christoph Hellwig wrote:
> On Wed, Jun 24, 2026 at 10:44:04AM -0700, Darrick J. Wong wrote:
> > On Fri, Jun 19, 2026 at 07:09:29AM +0200, Christoph Hellwig wrote:
> > > This test currently disables log concurrency scaling, but even the
> > > data device concurrency scaling can create mismatching output on
> > > systems with a large CPU count.
> > >
> > > Reported-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> > > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > > Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> > > ---
> > > tests/xfs/216 | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/tests/xfs/216 b/tests/xfs/216
> > > index 1749647c11f7..ce8bb528410b 100755
> > > --- a/tests/xfs/216
> > > +++ b/tests/xfs/216
> > > @@ -23,7 +23,7 @@ _cleanup()
> > > _require_scratch
> > > _scratch_mkfs_xfs >/dev/null 2>&1
> > > if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then
> > > - loop_mkfs_opts="-l concurrency=0"
> > > + loop_mkfs_opts="-d concurrency=0 -l concurrency=0 -r concurrency=0"
> >
> > /me notes that -lconcurrency is not compatible with -llogdev and the
> > loopdev is not formatted with SCRATCH_MKFS_OPTIONS, so this won't work
> > to disable the concurrency= mkfs options if fstests is being run with
> > SCRATCH_LOGDEV set.
>
> Arrg. I hate our option parsing mess. Any good idea how we'd get
> the desired result? Unless there's something easy I'd be tempted to
> leave it to the first person using an external log device and large
> cpu counts..
Yeah, that's me. :)
I just sent my latest batch of random fixes:
https://lore.kernel.org/fstests/178240619625.1665857.3954516357764795627.stgit@frogsfrogsfrogs/
I don't know that it's necessary to add -dconcurrency=0 for xfs/216
after that (it seemed to work for me) but I don't have any objections to
adding more:
if _mkfs_xfs_supported $loop_mkfs_opts -l concurrency=0 $loop_dev &>> $seqres.full; then
loop_mkfs_opts="$loop_mkfs_opts -l concurrency=0"
fi
if _mkfs_xfs_supported $loop_mkfs_opts -d concurrency=0 $loop_dev &>> $seqres.full; then
loop_mkfs_opts="$loop_mkfs_opts -d concurrency=0"
fi
--D
^ permalink raw reply
* [PATCH 2/2] xfs/21[67]: fix mkfs log concurrency detection
From: Darrick J. Wong @ 2026-06-25 16:51 UTC (permalink / raw)
To: zlang, djwong; +Cc: fstests, hch, fstests, linux-xfs
In-Reply-To: <178240619625.1665857.3954516357764795627.stgit@frogsfrogsfrogs>
From: Darrick J. Wong <djwong@kernel.org>
Both of these tests use _scratch_mkfs_xfs_supports_concurrency to detect
if they should be adding -lconcurrency=0 to the mkfs options that are
used to format a loop device.
However, this doesn't work in practice because of three factors: 1) the
scratch device could have an external log set up; 2) the loop device
does /not/ have an external log device; and 3) -lconcurrency isn't
compatible with -llogdev.
Fix this by creating a more general mkfs option detection helper and use
that once we have the loop device set up.
Cc: <fstests@vger.kernel.org> # v2026.05.17
Fixes: ffc8bad17e5b2f ("xfs/21{6,7} Use default -l concurrency=0 on mkfs.xfs that supports it")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
---
common/xfs | 6 ++++++
tests/xfs/216 | 9 ++++-----
tests/xfs/217 | 9 ++++-----
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/common/xfs b/common/xfs
index 88299acdd086be..81add2086866c8 100644
--- a/common/xfs
+++ b/common/xfs
@@ -64,6 +64,12 @@ _scratch_mkfs_xfs_opts()
echo "$MKFS_XFS_PROG $SCRATCH_OPTIONS $mkfs_opts"
}
+# Figure out if the supplied mkfs.xfs options are supported. A device or file
+# path must be specified as one of the options, though it will not be written.
+_mkfs_xfs_supported()
+{
+ $MKFS_XFS_PROG -f -N "$@"
+}
_scratch_mkfs_xfs_supported()
{
diff --git a/tests/xfs/216 b/tests/xfs/216
index 1749647c11f716..48657242e65daf 100755
--- a/tests/xfs/216
+++ b/tests/xfs/216
@@ -22,11 +22,6 @@ _cleanup()
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
-if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then
- loop_mkfs_opts="-l concurrency=0"
-else
- loop_mkfs_opts=""
-fi
_scratch_mount
_require_loop
@@ -76,6 +71,10 @@ mkdir $LOOP_MNT
loop_dev=$(_create_loop_device $LOOP_IMG)
+if _mkfs_xfs_supported $loop_mkfs_opts -l concurrency=0 $loop_dev &>> $seqres.full; then
+ loop_mkfs_opts="$loop_mkfs_opts -l concurrency=0"
+fi
+
# walk over standard sizes (up to 256GB)
_do_mkfs 1 2 4 8 16 32 64 128 256
diff --git a/tests/xfs/217 b/tests/xfs/217
index 23aae842d1fb61..34ac8dae8ef43f 100755
--- a/tests/xfs/217
+++ b/tests/xfs/217
@@ -21,11 +21,6 @@ _cleanup()
_require_scratch
_scratch_mkfs_xfs >/dev/null 2>&1
-if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then
- loop_mkfs_opts="-l concurrency=0 -d concurrency=0"
-else
- loop_mkfs_opts=""
-fi
_scratch_mount
# 16T mkfs requires a bit over 2G free
_require_fs_space $SCRATCH_MNT 2202000
@@ -63,6 +58,10 @@ fi
loop_dev=$(_create_loop_device $LOOP_IMG)
+if _mkfs_xfs_supported $loop_mkfs_opts -l concurrency=0 -d concurrency=0 $loop_dev &>> $seqres.full; then
+ loop_mkfs_opts="$loop_mkfs_opts -l concurrency=0 -d concurrency=0"
+fi
+
#
# walk over "new" sizes supported by recent xfsprogs.
# Note that the last test is for 16TB-1GB as 32bit platforms only support
^ permalink raw reply related
* [PATCH 1/2] common/xfs: fix _scratch_mkfs_xfs_supports_concurrency
From: Darrick J. Wong @ 2026-06-25 16:51 UTC (permalink / raw)
To: zlang, djwong; +Cc: fstests, hch, hch, fstests, linux-xfs
In-Reply-To: <178240619625.1665857.3954516357764795627.stgit@frogsfrogsfrogs>
From: Darrick J. Wong <djwong@kernel.org>
generic/347 regresses when external logs are in the configuration:
--- a/generic/347.out 2025-07-15 14:45:15.044714644 -0700
+++ b/generic/347.out.bad 2026-05-18 23:17:01.687750781 -0700
@@ -1,2 +1,36 @@
QA output created by 347
-=== completed
+Cannot specify both -l logdev and -l concurrency
+Usage: mkfs.xfs
Since this actually tests running mkfs.xfs with $SCRATCH_OPTIONS, the
helper ought to have detected that you can't give both. Unfortunately,
there's a weird switch that turns -l into -d even though they're not
quite the same option. Delete that, and fix the indentation (tabs, not
spaces) in the helper.
Cc: <fstests@vger.kernel.org> # v2026.05.17
Fixes: 7f162f5bcf50fc ("common/xfs: helper function to check if -l/-d/-r concurrecy flags.")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/common/xfs b/common/xfs
index 4b3a7f7d153282..88299acdd086be 100644
--- a/common/xfs
+++ b/common/xfs
@@ -2431,8 +2431,7 @@ _require_xfs_healer()
# -l/-d concurrency came in same xfsprogs release v6.7
_scratch_mkfs_xfs_supports_concurrency()
{
- local arg="${1:-d}"
+ local arg="${1:-d}"
- test "$arg" = "-l" && arg="-d"
- _scratch_mkfs_xfs_supported "$arg" concurrency=0
+ _scratch_mkfs_xfs_supported "$arg" concurrency=0
}
^ permalink raw reply related
* [PATCHSET] fstests: more random fixes for v2026.06.21
From: Darrick J. Wong @ 2026-06-25 16:50 UTC (permalink / raw)
To: zlang, djwong; +Cc: hch, fstests, hch, fstests, linux-xfs
Hi all,
Here's the usual odd fixes for fstests.
If you're going to start using this code, I strongly recommend pulling
from my git trees, which are linked below.
With a bit of luck, this should all go splendidly.
Comments and questions are, as always, welcome.
--D
kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=random-fixes
xfsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=random-fixes
fstests git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=random-fixes
---
Commits in this patchset:
* common/xfs: fix _scratch_mkfs_xfs_supports_concurrency
* xfs/21[67]: fix mkfs log concurrency detection
---
common/xfs | 11 ++++++++---
tests/xfs/216 | 9 ++++-----
tests/xfs/217 | 9 ++++-----
3 files changed, 16 insertions(+), 13 deletions(-)
^ permalink raw reply
* Re: [PATCH 2/2] xfs/216: disable all concurrency scaling
From: Christoph Hellwig @ 2026-06-25 13:22 UTC (permalink / raw)
To: Darrick J. Wong
Cc: Christoph Hellwig, Zorro Lang, Lukas Herbolt, Eric Sandeen,
Shin'ichiro Kawasaki, linux-xfs, fstests
In-Reply-To: <20260624174404.GS6078@frogsfrogsfrogs>
On Wed, Jun 24, 2026 at 10:44:04AM -0700, Darrick J. Wong wrote:
> On Fri, Jun 19, 2026 at 07:09:29AM +0200, Christoph Hellwig wrote:
> > This test currently disables log concurrency scaling, but even the
> > data device concurrency scaling can create mismatching output on
> > systems with a large CPU count.
> >
> > Reported-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
> > Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> > ---
> > tests/xfs/216 | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tests/xfs/216 b/tests/xfs/216
> > index 1749647c11f7..ce8bb528410b 100755
> > --- a/tests/xfs/216
> > +++ b/tests/xfs/216
> > @@ -23,7 +23,7 @@ _cleanup()
> > _require_scratch
> > _scratch_mkfs_xfs >/dev/null 2>&1
> > if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then
> > - loop_mkfs_opts="-l concurrency=0"
> > + loop_mkfs_opts="-d concurrency=0 -l concurrency=0 -r concurrency=0"
>
> /me notes that -lconcurrency is not compatible with -llogdev and the
> loopdev is not formatted with SCRATCH_MKFS_OPTIONS, so this won't work
> to disable the concurrency= mkfs options if fstests is being run with
> SCRATCH_LOGDEV set.
Arrg. I hate our option parsing mess. Any good idea how we'd get
the desired result? Unless there's something easy I'd be tempted to
leave it to the first person using an external log device and large
cpu counts..
^ permalink raw reply
* Re: [PATCH 2/2] xfs/216: disable all concurrency scaling
From: Darrick J. Wong @ 2026-06-24 17:44 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Zorro Lang, Lukas Herbolt, Eric Sandeen, Shin'ichiro Kawasaki,
linux-xfs, fstests
In-Reply-To: <20260619050937.444488-3-hch@lst.de>
On Fri, Jun 19, 2026 at 07:09:29AM +0200, Christoph Hellwig wrote:
> This test currently disables log concurrency scaling, but even the
> data device concurrency scaling can create mismatching output on
> systems with a large CPU count.
>
> Reported-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Tested-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
> ---
> tests/xfs/216 | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/xfs/216 b/tests/xfs/216
> index 1749647c11f7..ce8bb528410b 100755
> --- a/tests/xfs/216
> +++ b/tests/xfs/216
> @@ -23,7 +23,7 @@ _cleanup()
> _require_scratch
> _scratch_mkfs_xfs >/dev/null 2>&1
> if _scratch_mkfs_xfs_supports_concurrency -l >> $seqres.full 2>&1; then
> - loop_mkfs_opts="-l concurrency=0"
> + loop_mkfs_opts="-d concurrency=0 -l concurrency=0 -r concurrency=0"
/me notes that -lconcurrency is not compatible with -llogdev and the
loopdev is not formatted with SCRATCH_MKFS_OPTIONS, so this won't work
to disable the concurrency= mkfs options if fstests is being run with
SCRATCH_LOGDEV set.
--D
> else
> loop_mkfs_opts=""
> fi
> --
> 2.53.0
>
>
^ permalink raw reply
* Re: [PATCH] generic/064: allow 50 extents on F2FS after fcollapse
From: Christoph Hellwig @ 2026-06-24 7:46 UTC (permalink / raw)
To: Jan Prusakowski; +Cc: fstests, zlang, jaegeuk, linux-f2fs-devel
In-Reply-To: <20260622070438.1542638-1-jprusakowski@google.com>
On Mon, Jun 22, 2026 at 07:04:38AM +0000, Jan Prusakowski wrote:
> On F2FS, generic/064 fails with "extents mismatched before = 1 after =
> 50" following multiple fcollapse (collapse range) operations.
>
> To ensure crash consistency and checkpoint integrity, F2FS forbids
> in-place SSR (Summary Standalone Replacement) overwrites on valid
> checkpointed blocks. When collapse range shifts blocks, F2FS allocates
> new data pages in LFS mode (out-of-place log writes). As a result,
> sequential collapse range calls rewrite shifted blocks at new log
> locations, intentionally leaving the file with 50 extents.
This sounds odd. The test allocates a contigous range and then just does
insert/collapse on it, which should not lead to any new data block
allocations. Given that the test works fine on zoned XFS and btrfs
with strict out of place write policies we know it does not require
overwriting blocks to work as well.
So I think something is fishy in f2fs if needs to allocate data blocks
here.
^ permalink raw reply
* Re: [PATCH] common: skip data write EIO survival tests on fatal configs
From: Christoph Hellwig @ 2026-06-23 14:30 UTC (permalink / raw)
To: Yao Sang; +Cc: fstests, zlang
In-Reply-To: <20260623062616.1994466-1-sangyao@kylinos.cn>
Looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
^ permalink raw reply
* Re: [f2fs-dev] [PATCH] generic/064: allow 50 extents on F2FS after fcollapse
From: Chao Yu @ 2026-06-23 8:46 UTC (permalink / raw)
To: Jan Prusakowski, fstests; +Cc: chao, jaegeuk, zlang, linux-f2fs-devel
In-Reply-To: <20260622070438.1542638-1-jprusakowski@google.com>
On 6/22/26 15:04, Jan Prusakowski via Linux-f2fs-devel wrote:
> On F2FS, generic/064 fails with "extents mismatched before = 1 after =
> 50" following multiple fcollapse (collapse range) operations.
>
> To ensure crash consistency and checkpoint integrity, F2FS forbids
> in-place SSR (Summary Standalone Replacement) overwrites on valid
> checkpointed blocks. When collapse range shifts blocks, F2FS allocates
> new data pages in LFS mode (out-of-place log writes). As a result,
> sequential collapse range calls rewrite shifted blocks at new log
> locations, intentionally leaving the file with 50 extents.
>
> Adjust the extent verification in generic/064 to expect exactly 50
> extents on F2FS, while preserving the strict 1-extent requirement for
> all other filesystems. Data integrity continues to be verified via byte
> comparison.
>
> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
> Signed-off-by: Jan Prusakowski <jprusakowski@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Thanks,
^ permalink raw reply
* [PATCH] common: skip data write EIO survival tests on fatal configs
From: Yao Sang @ 2026-06-23 6:26 UTC (permalink / raw)
To: fstests; +Cc: hch, zlang, Yao Sang
generic/441 and xfs/656 inject data write errors after mounting the scratch
filesystem on dm-error. These tests do not verify whether a filesystem may
shut down after media errors. They require the filesystem to survive long
enough to report the error through the path under test: generic/441 checks
fsync(2) writeback error reporting, and xfs/656 checks healthmon per-I/O
error events.
That expectation is not valid for filesystem configurations where a data
write error is fatal. Zoned XFS is one such case because a failed data write
can leave the in-core zone allocation state untrustworthy, so shutting down
the mount is expected behavior.
Add a common helper for tests that require data write EIO to be reported
without shutting down the mounted filesystem, and use it after mounting the
dm-error device in both tests. The helper currently detects zoned XFS by
checking the XFS per-mount zoned/max_open_zones sysfs attribute for the
mounted device, so the check follows the filesystem instance rather than the
underlying block queue alone.
Fatal-on-data-write-error configurations are reported as notrun instead of
test failures.
Signed-off-by: Yao Sang <sangyao@kylinos.cn>
---
Changes since RFC:
- Replace the separate fatal predicate and survival requirement helpers with
a single _require_fs_survives_data_write_eio helper.
- Drop the FS_DATA_WRITE_EIO_SHUTDOWN override.
- Require callers to pass the mounted device explicitly.
- Remove _scratch from the helper name.
- Keep the XFS per-mount zoned/max_open_zones detection.
RFC Link:
https://lore.kernel.org/fstests/20260618034756.615426-1-sangyao@kylinos.cn/
common/rc | 22 ++++++++++++++++++++++
tests/generic/441 | 1 +
tests/xfs/656 | 1 +
3 files changed, 24 insertions(+)
diff --git a/common/rc b/common/rc
index 9632b211..4bf0861b 100644
--- a/common/rc
+++ b/common/rc
@@ -4162,6 +4162,28 @@ _require_scratch_shutdown_and_syncfs()
_require_scratch_shutdown
}
+# Require that the mounted filesystem survive data write errors long enough to
+# report them through the regular error reporting path.
+_require_fs_survives_data_write_eio()
+{
+ local dev=$1
+
+ if [ ! -b "$dev" ]; then
+ _fail "Usage: _require_fs_survives_data_write_eio <mounted_device>"
+ fi
+
+ case "$FSTYP" in
+ xfs)
+ # This is an XFS per-mount sysfs attribute, not a block queue
+ # attribute. Its existence means XFS mounted this instance with
+ # zoned filesystem semantics.
+ if _has_fs_sysfs_attr "$dev" "zoned/max_open_zones"; then
+ _notrun "zoned XFS shuts down on data write EIO"
+ fi
+ ;;
+ esac
+}
+
_check_s_dax()
{
local target=$1
diff --git a/tests/generic/441 b/tests/generic/441
index 6b48fc9e..cc370bea 100755
--- a/tests/generic/441
+++ b/tests/generic/441
@@ -53,6 +53,7 @@ echo "Format and mount"
_scratch_mkfs > $seqres.full 2>&1
_dmerror_init no_log
_dmerror_mount
+_require_fs_survives_data_write_eio $DMERROR_DEV
_require_fs_space $SCRATCH_MNT 65536
diff --git a/tests/xfs/656 b/tests/xfs/656
index 3a867692..3830d719 100755
--- a/tests/xfs/656
+++ b/tests/xfs/656
@@ -48,6 +48,7 @@ echo "Format and mount"
_scratch_mkfs > $seqres.full 2>&1
_dmerror_init no_log
_dmerror_mount
+_require_fs_survives_data_write_eio $DMERROR_DEV
_require_fs_space $SCRATCH_MNT 65536
--
2.25.1
^ permalink raw reply related
* [PATCH] generic/064: allow 50 extents on F2FS after fcollapse
From: Jan Prusakowski @ 2026-06-22 7:04 UTC (permalink / raw)
To: fstests; +Cc: zlang, jaegeuk, linux-f2fs-devel, Jan Prusakowski
On F2FS, generic/064 fails with "extents mismatched before = 1 after =
50" following multiple fcollapse (collapse range) operations.
To ensure crash consistency and checkpoint integrity, F2FS forbids
in-place SSR (Summary Standalone Replacement) overwrites on valid
checkpointed blocks. When collapse range shifts blocks, F2FS allocates
new data pages in LFS mode (out-of-place log writes). As a result,
sequential collapse range calls rewrite shifted blocks at new log
locations, intentionally leaving the file with 50 extents.
Adjust the extent verification in generic/064 to expect exactly 50
extents on F2FS, while preserving the strict 1-extent requirement for
all other filesystems. Data integrity continues to be verified via byte
comparison.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Jan Prusakowski <jprusakowski@google.com>
---
tests/generic/064 | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/tests/generic/064 b/tests/generic/064
index aed13970..b77eccb4 100755
--- a/tests/generic/064
+++ b/tests/generic/064
@@ -59,7 +59,13 @@ for (( j=0; j < $(($BLOCKS/2)); j++ )); do
done
extent_after=`_count_extents $dest`
-if [ $extent_before -ne $extent_after ]; then
+
+if [ "$FSTYP" == "f2fs" ];
+then
+ if [ $extent_before -ne 1 ] || [ $extent_after -ne 50 ]; then
+ echo "extents mismatched before = $extent_before after = $extent_after"
+ fi
+elif [ $extent_before -ne $extent_after ]; then
echo "extents mismatched before = $extent_before after = $extent_after"
fi
--
2.55.0.rc0.786.g65d90a0328-goog
^ permalink raw reply related
* [PATCH v2] common/f2fs: introduce _require_f2fs_io_command
From: Chao Yu @ 2026-06-22 2:05 UTC (permalink / raw)
To: Zorro Lang, fstests; +Cc: jaegeuk, linux-f2fs-devel, Chao Yu
Update existing f2fs testcases to utilize the new
_require_f2fs_io_command() helper for verifying required f2fs_io
subcommands instead of basic executable checks or open coding.
Suggested-by: Zorro Lang <zlang@kernel.org>
Signed-off-by: Chao Yu <chao@kernel.org>
---
v2: add Suggested-by tag of Zorro
common/f2fs | 16 ++++++++++++++++
tests/f2fs/003 | 1 +
tests/f2fs/004 | 1 +
tests/f2fs/007 | 1 +
tests/f2fs/009 | 1 +
tests/f2fs/010 | 2 +-
tests/f2fs/011 | 2 +-
tests/f2fs/012 | 2 +-
tests/f2fs/013 | 2 +-
tests/f2fs/025 | 2 +-
10 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/common/f2fs b/common/f2fs
index 82d3102ea..025d29a76 100644
--- a/common/f2fs
+++ b/common/f2fs
@@ -96,3 +96,19 @@ _require_inject_f2fs_command()
$F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \
_notrun "--$metaarea --mb $member support is missing"
}
+
+# Check that f2fs_io supports specific subcommand(s)
+_require_f2fs_io_command()
+{
+ _require_command "$F2FS_IO_PROG" f2fs_io
+
+ if [ -z "$1" ]; then
+ echo "Usage: _require_f2fs_io_command command..." 1>&2
+ _exit 1
+ fi
+
+ for command in "$@"; do
+ $F2FS_IO_PROG help | awk '{print $1}' | grep -qw "$command" || \
+ _notrun "f2fs_io $command support is missing"
+ done
+}
diff --git a/tests/f2fs/003 b/tests/f2fs/003
index fbb08a3e9..94885904c 100755
--- a/tests/f2fs/003
+++ b/tests/f2fs/003
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b40a2b003709 \
_require_scratch
_require_xfs_io_command "fpunch"
+_require_f2fs_io_command "write" "gc"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/004 b/tests/f2fs/004
index ac824c437..0592e23c4 100755
--- a/tests/f2fs/004
+++ b/tests/f2fs/004
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b2c160f4f3cf \
_require_scratch
_require_odirect
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/007 b/tests/f2fs/007
index 37388433e..e45b6cea9 100755
--- a/tests/f2fs/007
+++ b/tests/f2fs/007
@@ -15,6 +15,7 @@ _fixed_by_kernel_commit 26413ce18e85 \
"f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks"
_require_scratch
+_require_f2fs_io_command "compress" "get_cblocks" "release_cblocks" "reserve_cblocks" "decompress"
testfile_prefix=$SCRATCH_MNT/testfile
fio_config=$tmp.fio
diff --git a/tests/f2fs/009 b/tests/f2fs/009
index 39a4bad3d..afb3bc98f 100755
--- a/tests/f2fs/009
+++ b/tests/f2fs/009
@@ -15,6 +15,7 @@ _require_scratch
_require_scratch_shutdown
_require_inject_f2fs_command node i_links
_require_command "$(type -P socket)" socket
+_require_f2fs_io_command "write"
_fixed_by_git_commit f2fs-tools 958cd6e \
"fsck.f2fs: support to repair corrupted i_links"
diff --git a/tests/f2fs/010 b/tests/f2fs/010
index 50e378177..b8899dedc 100755
--- a/tests/f2fs/010
+++ b/tests/f2fs/010
@@ -30,7 +30,7 @@ _fixed_by_kernel_commit 03511e936916 \
"f2fs: fix inconsistent dirty state of atomic file"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/011 b/tests/f2fs/011
index 07c94d8c9..aa939c9e7 100755
--- a/tests/f2fs/011
+++ b/tests/f2fs/011
@@ -27,7 +27,7 @@ _fixed_by_kernel_commit f7f8932ca6bb \
"f2fs: fix to avoid running out of free segments"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "pinfile"
_scratch_mkfs_sized $((1*1024*1024*1024)) >> $seqres.full
_scratch_mount -o checkpoint=disable:10%
diff --git a/tests/f2fs/012 b/tests/f2fs/012
index 53d54bf6b..15b0e5055 100755
--- a/tests/f2fs/012
+++ b/tests/f2fs/012
@@ -19,7 +19,7 @@ _fixed_by_kernel_commit 91b587ba79e1 \
export LC_ALL=C.UTF-8
_require_scratch_nocheck
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "setflags"
_require_inject_f2fs_command dent d_hash
#check whether f2fs supports "lookup_mode=x" mount option
diff --git a/tests/f2fs/013 b/tests/f2fs/013
index 80ed2702b..086a5b4bb 100755
--- a/tests/f2fs/013
+++ b/tests/f2fs/013
@@ -19,7 +19,7 @@
. ./common/preamble
_begin_fstest auto quick
_require_kernel_config CONFIG_F2FS_FAULT_INJECTION
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write" "fsync"
_cleanup()
{
diff --git a/tests/f2fs/025 b/tests/f2fs/025
index 807f18f23..6fc18d989 100755
--- a/tests/f2fs/025
+++ b/tests/f2fs/025
@@ -20,7 +20,7 @@ _require_scratch
_require_scratch_shutdown
_require_xfs_io_command "pwrite"
_require_xfs_io_command "truncate"
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command gc_urgent
_require_fs_sysfs_attr $TEST_DEV gc_urgent
_require_check_dmesg
--
2.49.0
^ permalink raw reply related
* [PATCH] common/f2fs: introduce _require_f2fs_io_command
From: Chao Yu @ 2026-06-22 1:58 UTC (permalink / raw)
To: Zorro Lang, fstests; +Cc: jaegeuk, linux-f2fs-devel, Chao Yu
Update existing f2fs testcases to utilize the new
_require_f2fs_io_command() helper for verifying required f2fs_io
subcommands instead of basic executable checks or open coding.
Signed-off-by: Chao Yu <chao@kernel.org>
---
common/f2fs | 16 ++++++++++++++++
tests/f2fs/003 | 1 +
tests/f2fs/004 | 1 +
tests/f2fs/007 | 1 +
tests/f2fs/009 | 1 +
tests/f2fs/010 | 2 +-
tests/f2fs/011 | 2 +-
tests/f2fs/012 | 2 +-
tests/f2fs/013 | 2 +-
tests/f2fs/025 | 2 +-
10 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/common/f2fs b/common/f2fs
index 82d3102ea..025d29a76 100644
--- a/common/f2fs
+++ b/common/f2fs
@@ -96,3 +96,19 @@ _require_inject_f2fs_command()
$F2FS_INJECT_PROG "--$metaarea" "$val" "-h" | grep "$member:" > /dev/null || \
_notrun "--$metaarea --mb $member support is missing"
}
+
+# Check that f2fs_io supports specific subcommand(s)
+_require_f2fs_io_command()
+{
+ _require_command "$F2FS_IO_PROG" f2fs_io
+
+ if [ -z "$1" ]; then
+ echo "Usage: _require_f2fs_io_command command..." 1>&2
+ _exit 1
+ fi
+
+ for command in "$@"; do
+ $F2FS_IO_PROG help | awk '{print $1}' | grep -qw "$command" || \
+ _notrun "f2fs_io $command support is missing"
+ done
+}
diff --git a/tests/f2fs/003 b/tests/f2fs/003
index fbb08a3e9..94885904c 100755
--- a/tests/f2fs/003
+++ b/tests/f2fs/003
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b40a2b003709 \
_require_scratch
_require_xfs_io_command "fpunch"
+_require_f2fs_io_command "write" "gc"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/004 b/tests/f2fs/004
index ac824c437..0592e23c4 100755
--- a/tests/f2fs/004
+++ b/tests/f2fs/004
@@ -30,6 +30,7 @@ _fixed_by_kernel_commit b2c160f4f3cf \
_require_scratch
_require_odirect
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/007 b/tests/f2fs/007
index 37388433e..e45b6cea9 100755
--- a/tests/f2fs/007
+++ b/tests/f2fs/007
@@ -15,6 +15,7 @@ _fixed_by_kernel_commit 26413ce18e85 \
"f2fs: compress: fix inconsistent update of i_blocks in release_compress_blocks and reserve_compress_blocks"
_require_scratch
+_require_f2fs_io_command "compress" "get_cblocks" "release_cblocks" "reserve_cblocks" "decompress"
testfile_prefix=$SCRATCH_MNT/testfile
fio_config=$tmp.fio
diff --git a/tests/f2fs/009 b/tests/f2fs/009
index 39a4bad3d..afb3bc98f 100755
--- a/tests/f2fs/009
+++ b/tests/f2fs/009
@@ -15,6 +15,7 @@ _require_scratch
_require_scratch_shutdown
_require_inject_f2fs_command node i_links
_require_command "$(type -P socket)" socket
+_require_f2fs_io_command "write"
_fixed_by_git_commit f2fs-tools 958cd6e \
"fsck.f2fs: support to repair corrupted i_links"
diff --git a/tests/f2fs/010 b/tests/f2fs/010
index 50e378177..b8899dedc 100755
--- a/tests/f2fs/010
+++ b/tests/f2fs/010
@@ -30,7 +30,7 @@ _fixed_by_kernel_commit 03511e936916 \
"f2fs: fix inconsistent dirty state of atomic file"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write"
_scratch_mkfs >> $seqres.full
_scratch_mount >> $seqres.full
diff --git a/tests/f2fs/011 b/tests/f2fs/011
index 07c94d8c9..aa939c9e7 100755
--- a/tests/f2fs/011
+++ b/tests/f2fs/011
@@ -27,7 +27,7 @@ _fixed_by_kernel_commit f7f8932ca6bb \
"f2fs: fix to avoid running out of free segments"
_require_scratch
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "pinfile"
_scratch_mkfs_sized $((1*1024*1024*1024)) >> $seqres.full
_scratch_mount -o checkpoint=disable:10%
diff --git a/tests/f2fs/012 b/tests/f2fs/012
index 53d54bf6b..15b0e5055 100755
--- a/tests/f2fs/012
+++ b/tests/f2fs/012
@@ -19,7 +19,7 @@ _fixed_by_kernel_commit 91b587ba79e1 \
export LC_ALL=C.UTF-8
_require_scratch_nocheck
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "setflags"
_require_inject_f2fs_command dent d_hash
#check whether f2fs supports "lookup_mode=x" mount option
diff --git a/tests/f2fs/013 b/tests/f2fs/013
index 80ed2702b..086a5b4bb 100755
--- a/tests/f2fs/013
+++ b/tests/f2fs/013
@@ -19,7 +19,7 @@
. ./common/preamble
_begin_fstest auto quick
_require_kernel_config CONFIG_F2FS_FAULT_INJECTION
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command "write" "fsync"
_cleanup()
{
diff --git a/tests/f2fs/025 b/tests/f2fs/025
index 807f18f23..6fc18d989 100755
--- a/tests/f2fs/025
+++ b/tests/f2fs/025
@@ -20,7 +20,7 @@ _require_scratch
_require_scratch_shutdown
_require_xfs_io_command "pwrite"
_require_xfs_io_command "truncate"
-_require_command "$F2FS_IO_PROG" f2fs_io
+_require_f2fs_io_command gc_urgent
_require_fs_sysfs_attr $TEST_DEV gc_urgent
_require_check_dmesg
--
2.49.0
^ permalink raw reply related
* Re: [PATCH 1/2] vfstest: move sys_umount2() to cleanup path in tcore_acls()
From: Zorro Lang @ 2026-06-21 15:56 UTC (permalink / raw)
To: German Maglione; +Cc: fstests, brauner, linux-fsdevel
In-Reply-To: <20260618-xfstests-tcore-acls-fixes-v1-1-45a1aec1d99d@redhat.com>
On Thu, Jun 18, 2026 at 12:11:53PM +0200, German Maglione wrote:
> sys_umount2() in tcore_acls() only runs on the success path. If setfacl
> fails (e.g. no ACL support), the mount on DIR2 is left behind and
> test_cleanup() can't remove T_DIR1. This causes every subsequent test
> to fail with EEXIST on mkdirat(T_DIR1).
>
> Move sys_umount2() into the out: block so it always runs.
>
> Signed-off-by: German Maglione <gmaglione@redhat.com>
> ---
Makes sense to me, thanks for fixing it.
Reviewed-by: Zorro Lang <zlang@kernel.org>
> src/vfs/idmapped-mounts.c | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/src/vfs/idmapped-mounts.c b/src/vfs/idmapped-mounts.c
> index ed9992f975c14b57c5d6d1634ca011b015b78bcb..d0630f5931ade713a99f5dec1cbe24bdaa75d35d 100644
> --- a/src/vfs/idmapped-mounts.c
> +++ b/src/vfs/idmapped-mounts.c
> @@ -240,12 +240,11 @@ int tcore_acls(const struct vfstest_info *info)
> goto out;
> }
>
> - snprintf(t_buf, sizeof(t_buf), "%s/" T_DIR1 "/" DIR2, info->t_mountpoint);
> - sys_umount2(t_buf, MNT_DETACH);
> -
> fret = 0;
> log_debug("Ran test");
> out:
> + snprintf(t_buf, sizeof(t_buf), "%s/" T_DIR1 "/" DIR2, info->t_mountpoint);
> + sys_umount2(t_buf, MNT_DETACH);
> safe_close(attr.userns_fd);
> safe_close(dir1_fd);
> safe_close(open_tree_fd);
>
> --
> 2.49.0
>
^ permalink raw reply
* Re: [PATCH 2/2] generic/633: add _require_acls for tcore_acls() ACL dependency
From: Zorro Lang @ 2026-06-21 15:54 UTC (permalink / raw)
To: German Maglione; +Cc: fstests, brauner, linux-fsdevel
In-Reply-To: <20260618-xfstests-tcore-acls-fixes-v1-2-45a1aec1d99d@redhat.com>
On Thu, Jun 18, 2026 at 12:11:54PM +0200, German Maglione wrote:
> generic/633 runs --test-core which includes tcore_acls(). Without
> _require_acls, the test fails instead of being skipped on filesystems
> that lack ACL support.
>
> Signed-off-by: German Maglione <gmaglione@redhat.com>
> ---
> tests/generic/633 | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/tests/generic/633 b/tests/generic/633
> index d75d4dc860d3b78e5fe11b538e3aba4e9ab477e1..90d24f099bc732d5db209f8d014ddaeb042985b2 100755
> --- a/tests/generic/633
> +++ b/tests/generic/633
> @@ -14,6 +14,7 @@ _begin_fstest auto quick atime attr cap idmapped io_uring mount perms rw unlink
>
> _require_test
> _require_chown
> +_require_acls
_require_acls is in common/attr which isn't imported automatically.
I'll help to do:
. ./common/attr
when I merge this patch.
Reviewed-by: Zorro Lang <zlang@kernel.org>
Thanks,
Zorro
>
> echo "Silence is golden"
>
>
> --
> 2.49.0
>
^ permalink raw reply
* [ANNOUNCE] fstests: for-next branch updated to v2026.06.21
From: Zorro Lang @ 2026-06-20 17:07 UTC (permalink / raw)
To: fstests
[-- Attachment #1: Type: text/plain, Size: 4557 bytes --]
Hi all,
The for-next branch of the xfstests repository at:
git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git
has just been updated and tagged as v2026.06.21 release.
Release Notes:
1) There're 9 new cases in this release, include generic/795, generic/796,
generic/797, btrfs/348, btrfs/349, btrfs/350, f2fs/025 xfs/333, xfs/670
and f2fs/025.
Note: The new btrfs/350 triggers a kernel panic on unpatched kernels.
2) All f2fs shutdown operations have been unified to use the _scratch_shutdown
helper.
3) Exclude HFS from atime testing
4) Skips defrag tests on DAX-enabled ext4
5) Zoned realtime XFS testing is enhanced.
More updates and fixes refer to below, thanks for all these contributions!
Thanks,
Zorro
The new head of the for-next branch is commit:
acb6d4cb8420 common/defrag: skip defrag tests on DAX-enabled filesystems
New commits:
Andrey Albershteyn (1):
[c1dcfe62b3f9] generic/791: don't run if kernel misses FANOTIFY
Boris Burkov (2):
[d65330dd7de4] btrfs: inline enable_quota helper in test 301
[26c2b701724a] btrfs: test qgroup deletion races with squota writes
Chao Yu (2):
[4f599bae27e4] f2fs/025: test to do sanity check section type correctly in f2fs GC
[88b140d74b3e] f2fs/009: use common _scratch_shutdown helper
Christoph Hellwig (4):
[ce4e96a89a2b] generic: add a test that stresses metadata eviction
[1104c45b26d0] common: add a _require_external_realtime_device helper
[120ff814a4c9] xfs: test that a grown RT section can be filled
[26eb955e4243] generic/366: check minimum dio size correctly
Disha Goel (1):
[acb6d4cb8420] common/defrag: skip defrag tests on DAX-enabled filesystems
Filipe Manana (2):
[32b4dfffbc08] generic: add a test case for fallocate i_size extension
[973512e9c240] generic: add a test case for writes with prealloc extents beyond i_size
Jan Prusakowski (1):
[d66e76fc5ab6] generic/563: allow read tolerance for f2fs in scenario 3
Joanne Chang (3):
[55d8071bc4a8] f2fs/015: Fix mount syntax for disabling jquota
[c5ddd1789ae1] f2fs/021: Fix mount syntax for disabling jquota
[65caee6192ce] generic/63{4,5}: Modify criteria for passing test
Qu Wenruo (5):
[748ae5ab4076] btrfs/340: add support for older kernels/progs
[1418baaef1fa] fstests: btrfs: add a new test case for single data RAID56
[239cc1d59866] fstests: cleanup old files to respect mount options needing new inodes
[80d250af40ca] fstests: btrfs: add a new test case for fstrim crash
[ace8d9c9dee5] fstests: btrfs/138: add requirement for datacsum
Shin'ichiro Kawasaki (2):
[5d68212a7373] common/filestreams: check zoned device before mkfs with small dsize
[6c5d1992fb3b] xfs/013: fix ENOSPC handling
Viacheslav Dubeyko (1):
[d5fb5bbbd22d] common/rc: exclude HFS from atime testing
Yao Sang (1):
[ec6d49da5d27] xfs: test zoned realtime writeback EIO shutdown
Code Diffstat:
common/defrag | 2 +
common/filestreams | 13 +++--
common/rc | 20 +++++---
src/fs-monitor.c | 19 ++++++-
tests/btrfs/138 | 1 +
tests/btrfs/301 | 14 +-----
tests/btrfs/340 | 8 ++-
tests/btrfs/348 | 68 +++++++++++++++++++++++++
tests/btrfs/348.out | 2 +
tests/btrfs/349 | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++
tests/btrfs/349.out | 10 ++++
tests/btrfs/350 | 39 +++++++++++++++
tests/btrfs/350.out | 2 +
tests/f2fs/009 | 3 +-
tests/f2fs/015 | 13 +++--
tests/f2fs/015.out | 6 +--
tests/f2fs/021 | 4 +-
tests/f2fs/025 | 82 ++++++++++++++++++++++++++++++
tests/f2fs/025.out | 2 +
tests/generic/362 | 7 +++
tests/generic/364 | 7 +++
tests/generic/366 | 14 +++++-
tests/generic/418 | 7 +++
tests/generic/563 | 5 +-
tests/generic/634 | 4 +-
tests/generic/635 | 4 +-
tests/generic/708 | 7 +++
tests/generic/791 | 3 ++
tests/generic/795 | 108 +++++++++++++++++++++++++++++++++++++++
tests/generic/795.out | 2 +
tests/generic/796 | 52 +++++++++++++++++++
tests/generic/796.out | 5 ++
tests/generic/797 | 54 ++++++++++++++++++++
tests/generic/797.out | 10 ++++
tests/xfs/013 | 4 +-
tests/xfs/333 | 66 ++++++++++++++++++++++++
tests/xfs/333.out | 2 +
tests/xfs/670 | 58 +++++++++++++++++++++
tests/xfs/670.out | 3 ++
39 files changed, 822 insertions(+), 44 deletions(-)
--
Zorro Lang
zlang@kernel.org
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply
* [ANNOUNCE] fstests: merge v2026.05.17 onto master branch
From: Zorro Lang @ 2026-06-20 16:37 UTC (permalink / raw)
To: fstests
[-- Attachment #1: Type: text/plain, Size: 4623 bytes --]
Hi all,
The master branch of the xfstests repository at:
git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git
has just been updated to v2026.05.17 version.
Thanks,
Zorro
The new head of the master branch is commit:
ffc8bad17e5b xfs/21{6,7} Use default -l concurrency=0 on mkfs.xfs that supports it
New commits:
Christian Brauner (1):
[8c69a37c4f4c] vfs: fix dumpable race in create_userns_hierarchy()
Christoph Hellwig (1):
[12c729c1a296] xfs/216: pass -t xfs to _mount
Darrick J. Wong (4):
[078f3204e049] treewide: convert all $MOUNT_PROG to _mount
[832a6d9ac226] check: capture dmesg of mount failures if test fails
[f61ba0fde3ec] generic/45[34]: add detection of confusable variation sequences
[cdd9140a2f78] generic/45[34]: don't warn on mixed bidirectional characters
David Disseldorp (1):
[4192c9e2266c] common/rc: add default _udev_wait timeout
Disha Goel (2):
[a974318c5bfa] common/dmlogwrites: add _require_log_writes_sized helper
[3aca6733f6cd] btrfs/291: fix state transition logic and add size requirement
Filipe Manana (1):
[528c7ba2a275] fstests: add commit IDs for kernel fixes already merged
Joanne Chang (1):
[b8bcadc36c36] f2fs/{022,023}: clear MOUNT_OPTIONS alongside MKFS_OPTIONS
Johannes Thumshirn (1):
[d9b1d9c6f43e] generic/793: limit number of overwrites
Lukas Herbolt (4):
[55f45a620c55] common/rc: Add helper to calculate percentage of free space available
[7f162f5bcf50] common/xfs: helper function to check if -l/-d/-r concurrecy flags.
[393a4e58584d] generic/{102,172,347}: Adapt test for XFS on systems with 128+CPUs + SSDs
[ffc8bad17e5b] xfs/21{6,7} Use default -l concurrency=0 on mkfs.xfs that supports it
Ojaswin Mujoo (1):
[0d6ed520323d] ext4/307: Calculate donor size to avoid failures for 64k bs
Qu Wenruo (1):
[8413f58d843f] fstests: support new mkfs.btrfs help string
Zhang Yi (1):
[95155ec233fa] generic: test post-EOF gap zeroing persistence
Zorro Lang (1):
[55e172c4c914] xfs/227: fix bad variable expansion
Code Diffstat:
check | 20 +++++-
common/btrfs | 4 +-
common/config | 2 +-
common/dmdelay | 2 +-
common/dmerror | 2 +-
common/dmlogwrites | 18 +++++-
common/overlay | 6 +-
common/rc | 31 ++++++++-
common/report | 8 +++
common/xfs | 9 +++
doc/xunit.xsd | 12 +++-
src/vfs/utils.c | 20 ++++++
tests/btrfs/012 | 6 +-
tests/btrfs/075 | 2 +-
tests/btrfs/089 | 2 +-
tests/btrfs/136 | 4 +-
tests/btrfs/208 | 2 +-
tests/btrfs/291 | 19 ++++--
tests/btrfs/330 | 2 +-
tests/btrfs/335 | 2 +-
tests/btrfs/343 | 2 +-
tests/btrfs/344 | 4 +-
tests/ext4/032 | 2 +-
tests/ext4/307 | 18 ++++--
tests/f2fs/022 | 1 +
tests/f2fs/023 | 1 +
tests/generic/067 | 4 +-
tests/generic/089 | 2 +-
tests/generic/102 | 5 +-
tests/generic/102.out | 20 +++---
tests/generic/120 | 2 +-
tests/generic/172 | 8 +--
tests/generic/306 | 2 +-
tests/generic/347 | 9 ++-
tests/generic/361 | 2 +-
tests/generic/373 | 2 +-
tests/generic/374 | 2 +-
tests/generic/395 | 4 +-
tests/generic/409 | 6 +-
tests/generic/410 | 8 +--
tests/generic/411 | 8 +--
tests/generic/453 | 45 +++++++++++++
tests/generic/454 | 46 ++++++++++++++
tests/generic/504 | 4 +-
tests/generic/589 | 8 +--
tests/generic/631 | 2 +-
tests/generic/717 | 2 +-
tests/generic/792 | 2 +-
tests/generic/793 | 9 ++-
tests/generic/794 | 168 +++++++++++++++++++++++++++++++++++++++++++++++++
tests/generic/794.out | 4 ++
tests/overlay/005 | 4 +-
tests/overlay/025 | 2 +-
tests/overlay/062 | 2 +-
tests/overlay/083 | 6 +-
tests/overlay/086 | 12 ++--
tests/selftest/008 | 22 +++++++
tests/selftest/008.out | 1 +
tests/xfs/044 | 2 +-
tests/xfs/049 | 8 +--
tests/xfs/149 | 4 +-
tests/xfs/206 | 2 +-
tests/xfs/216 | 8 ++-
tests/xfs/217 | 7 ++-
tests/xfs/227 | 6 +-
tests/xfs/250 | 2 +-
tests/xfs/289 | 4 +-
tests/xfs/300 | 2 +-
tests/xfs/507 | 2 +-
tests/xfs/544 | 2 +-
70 files changed, 553 insertions(+), 120 deletions(-)
--
Zorro Lang
zlang@kernel.org
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply
page: next (older)
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox