* _supports_xfs_scrub cleanups
@ 2024-01-11 14:24 Christoph Hellwig
2024-01-11 14:24 ` [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub Christoph Hellwig
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-11 14:24 UTC (permalink / raw)
To: zlang; +Cc: djwong, fstests, linux-xfs
Hi all,
this series adds a missing scrub support fix to xfs/262 and cleans
up a few bits around this.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-11 14:24 _supports_xfs_scrub cleanups Christoph Hellwig
@ 2024-01-11 14:24 ` Christoph Hellwig
2024-01-11 17:20 ` Darrick J. Wong
2024-01-11 14:24 ` [PATCH 2/3] xfs: add a _scratch_require_xfs_scrub helper Christoph Hellwig
2024-01-11 14:24 ` [PATCH 3/3] xfs/262: call _scratch_require_xfs_scrub Christoph Hellwig
2 siblings, 1 reply; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-11 14:24 UTC (permalink / raw)
To: zlang; +Cc: djwong, fstests, linux-xfs
Add a sanity check that the passed in mount point is actually mounted
to guard against actually calling _supports_xfs_scrub before
$SCRATCH_MNT is mounted.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/common/xfs b/common/xfs
index f53b33fc5..9db998837 100644
--- a/common/xfs
+++ b/common/xfs
@@ -649,6 +649,8 @@ _supports_xfs_scrub()
test "$FSTYP" = "xfs" || return 1
test -x "$XFS_SCRUB_PROG" || return 1
+ mountpoint $mountpoint >/dev/null || echo "$mountpoint is not mounted"
+
# Probe for kernel support...
$XFS_IO_PROG -c 'help scrub' 2>&1 | grep -q 'types are:.*probe' || return 1
$XFS_IO_PROG -c "scrub probe" "$mountpoint" 2>&1 | grep -q "Inappropriate ioctl" && return 1
--
2.39.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/3] xfs: add a _scratch_require_xfs_scrub helper
2024-01-11 14:24 _supports_xfs_scrub cleanups Christoph Hellwig
2024-01-11 14:24 ` [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub Christoph Hellwig
@ 2024-01-11 14:24 ` Christoph Hellwig
2024-01-11 17:20 ` Darrick J. Wong
2024-01-11 14:24 ` [PATCH 3/3] xfs/262: call _scratch_require_xfs_scrub Christoph Hellwig
2 siblings, 1 reply; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-11 14:24 UTC (permalink / raw)
To: zlang; +Cc: djwong, fstests, linux-xfs
Add a helper to call _supports_xfs_scrub with $SCRATCH_MNT and
$SCRATCH_DEV.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
common/xfs | 7 +++++++
tests/xfs/556 | 2 +-
tests/xfs/716 | 2 +-
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/common/xfs b/common/xfs
index 9db998837..bfe979dbb 100644
--- a/common/xfs
+++ b/common/xfs
@@ -661,6 +661,13 @@ _supports_xfs_scrub()
return 0
}
+# Does the scratch file system support scrub?
+_scratch_require_xfs_scrub()
+{
+ _supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV || \
+ _notrun "Scrub not supported"
+}
+
# Save a snapshot of a corrupt xfs filesystem for later debugging.
_xfs_metadump() {
local metadump="$1"
diff --git a/tests/xfs/556 b/tests/xfs/556
index 061d8d572..6be993273 100755
--- a/tests/xfs/556
+++ b/tests/xfs/556
@@ -40,7 +40,7 @@ _scratch_mkfs >> $seqres.full
_dmerror_init
_dmerror_mount >> $seqres.full 2>&1
-_supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV || _notrun "Scrub not supported"
+_scratch_require_xfs_scrub
# Write a file with 4 file blocks worth of data
victim=$SCRATCH_MNT/a
diff --git a/tests/xfs/716 b/tests/xfs/716
index 930a0ecbb..4cfb27f18 100755
--- a/tests/xfs/716
+++ b/tests/xfs/716
@@ -31,7 +31,7 @@ _require_test_program "punch-alternating"
_scratch_mkfs > $tmp.mkfs
_scratch_mount
-_supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV || _notrun "Scrub not supported"
+_scratch_require_xfs_scrub
# Force data device extents so that we can create a file with the exact bmbt
# that we need regardless of rt configuration.
--
2.39.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/3] xfs/262: call _scratch_require_xfs_scrub
2024-01-11 14:24 _supports_xfs_scrub cleanups Christoph Hellwig
2024-01-11 14:24 ` [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub Christoph Hellwig
2024-01-11 14:24 ` [PATCH 2/3] xfs: add a _scratch_require_xfs_scrub helper Christoph Hellwig
@ 2024-01-11 14:24 ` Christoph Hellwig
2024-01-11 17:20 ` Darrick J. Wong
2 siblings, 1 reply; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-11 14:24 UTC (permalink / raw)
To: zlang; +Cc: djwong, fstests, linux-xfs
Call _scratch_require_xfs_scrub so that the test is _notrun on kernels
without online scrub support.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
tests/xfs/262 | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tests/xfs/262 b/tests/xfs/262
index b28a6c88b..0d1fd779d 100755
--- a/tests/xfs/262
+++ b/tests/xfs/262
@@ -29,6 +29,9 @@ _require_xfs_io_error_injection "force_repair"
echo "Format and populate"
_scratch_mkfs > "$seqres.full" 2>&1
_scratch_mount
+
+_scratch_require_xfs_scrub
+
cp $XFS_SCRUB_PROG $SCRATCH_MNT/xfs_scrub
$LDD_PROG $XFS_SCRUB_PROG | sed -e '/\//!d;/linux-gate/d;/=>/ {s/.*=>[[:blank:]]*\([^[:blank:]]*\).*/\1/};s/[[:blank:]]*\([^[:blank:]]*\) (.*)/\1/' | while read lib; do
cp $lib $SCRATCH_MNT/
--
2.39.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-11 14:24 ` [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub Christoph Hellwig
@ 2024-01-11 17:20 ` Darrick J. Wong
2024-01-11 17:25 ` Christoph Hellwig
0 siblings, 1 reply; 12+ messages in thread
From: Darrick J. Wong @ 2024-01-11 17:20 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: zlang, fstests, linux-xfs
On Thu, Jan 11, 2024 at 03:24:05PM +0100, Christoph Hellwig wrote:
> Add a sanity check that the passed in mount point is actually mounted
> to guard against actually calling _supports_xfs_scrub before
> $SCRATCH_MNT is mounted.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> common/xfs | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/common/xfs b/common/xfs
> index f53b33fc5..9db998837 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -649,6 +649,8 @@ _supports_xfs_scrub()
> test "$FSTYP" = "xfs" || return 1
> test -x "$XFS_SCRUB_PROG" || return 1
>
> + mountpoint $mountpoint >/dev/null || echo "$mountpoint is not mounted"
The helper needs to return nonzero on failure, e.g.
if ! mountpoint -q $mountpoint; then
echo "$mountpoint is not mounted"
return 1
fi
> +
> # Probe for kernel support...
> $XFS_IO_PROG -c 'help scrub' 2>&1 | grep -q 'types are:.*probe' || return 1
Like it already does down here.
--D
> $XFS_IO_PROG -c "scrub probe" "$mountpoint" 2>&1 | grep -q "Inappropriate ioctl" && return 1
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/3] xfs: add a _scratch_require_xfs_scrub helper
2024-01-11 14:24 ` [PATCH 2/3] xfs: add a _scratch_require_xfs_scrub helper Christoph Hellwig
@ 2024-01-11 17:20 ` Darrick J. Wong
0 siblings, 0 replies; 12+ messages in thread
From: Darrick J. Wong @ 2024-01-11 17:20 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: zlang, fstests, linux-xfs
On Thu, Jan 11, 2024 at 03:24:06PM +0100, Christoph Hellwig wrote:
> Add a helper to call _supports_xfs_scrub with $SCRATCH_MNT and
> $SCRATCH_DEV.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Thanks for the cleanup,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> ---
> common/xfs | 7 +++++++
> tests/xfs/556 | 2 +-
> tests/xfs/716 | 2 +-
> 3 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/common/xfs b/common/xfs
> index 9db998837..bfe979dbb 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -661,6 +661,13 @@ _supports_xfs_scrub()
> return 0
> }
>
> +# Does the scratch file system support scrub?
> +_scratch_require_xfs_scrub()
> +{
> + _supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV || \
> + _notrun "Scrub not supported"
> +}
> +
> # Save a snapshot of a corrupt xfs filesystem for later debugging.
> _xfs_metadump() {
> local metadump="$1"
> diff --git a/tests/xfs/556 b/tests/xfs/556
> index 061d8d572..6be993273 100755
> --- a/tests/xfs/556
> +++ b/tests/xfs/556
> @@ -40,7 +40,7 @@ _scratch_mkfs >> $seqres.full
> _dmerror_init
> _dmerror_mount >> $seqres.full 2>&1
>
> -_supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV || _notrun "Scrub not supported"
> +_scratch_require_xfs_scrub
>
> # Write a file with 4 file blocks worth of data
> victim=$SCRATCH_MNT/a
> diff --git a/tests/xfs/716 b/tests/xfs/716
> index 930a0ecbb..4cfb27f18 100755
> --- a/tests/xfs/716
> +++ b/tests/xfs/716
> @@ -31,7 +31,7 @@ _require_test_program "punch-alternating"
> _scratch_mkfs > $tmp.mkfs
> _scratch_mount
>
> -_supports_xfs_scrub $SCRATCH_MNT $SCRATCH_DEV || _notrun "Scrub not supported"
> +_scratch_require_xfs_scrub
>
> # Force data device extents so that we can create a file with the exact bmbt
> # that we need regardless of rt configuration.
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/3] xfs/262: call _scratch_require_xfs_scrub
2024-01-11 14:24 ` [PATCH 3/3] xfs/262: call _scratch_require_xfs_scrub Christoph Hellwig
@ 2024-01-11 17:20 ` Darrick J. Wong
0 siblings, 0 replies; 12+ messages in thread
From: Darrick J. Wong @ 2024-01-11 17:20 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: zlang, fstests, linux-xfs
On Thu, Jan 11, 2024 at 03:24:07PM +0100, Christoph Hellwig wrote:
> Call _scratch_require_xfs_scrub so that the test is _notrun on kernels
> without online scrub support.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
Looks good!
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> ---
> tests/xfs/262 | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tests/xfs/262 b/tests/xfs/262
> index b28a6c88b..0d1fd779d 100755
> --- a/tests/xfs/262
> +++ b/tests/xfs/262
> @@ -29,6 +29,9 @@ _require_xfs_io_error_injection "force_repair"
> echo "Format and populate"
> _scratch_mkfs > "$seqres.full" 2>&1
> _scratch_mount
> +
> +_scratch_require_xfs_scrub
> +
> cp $XFS_SCRUB_PROG $SCRATCH_MNT/xfs_scrub
> $LDD_PROG $XFS_SCRUB_PROG | sed -e '/\//!d;/linux-gate/d;/=>/ {s/.*=>[[:blank:]]*\([^[:blank:]]*\).*/\1/};s/[[:blank:]]*\([^[:blank:]]*\) (.*)/\1/' | while read lib; do
> cp $lib $SCRATCH_MNT/
> --
> 2.39.2
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-11 17:20 ` Darrick J. Wong
@ 2024-01-11 17:25 ` Christoph Hellwig
2024-01-11 21:17 ` Zorro Lang
0 siblings, 1 reply; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-11 17:25 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: Christoph Hellwig, zlang, fstests, linux-xfs
On Thu, Jan 11, 2024 at 09:20:22AM -0800, Darrick J. Wong wrote:
> > + mountpoint $mountpoint >/dev/null || echo "$mountpoint is not mounted"
>
> The helper needs to return nonzero on failure, e.g.
>
> if ! mountpoint -q $mountpoint; then
> echo "$mountpoint is not mounted"
> return 1
> fi
No, it doesn't.. I actually did exactly that first, but that causes the
test to be _notrun instead of reporting the error and thus telling the
author that they usage of this helper is wrong.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-11 17:25 ` Christoph Hellwig
@ 2024-01-11 21:17 ` Zorro Lang
2024-01-12 2:17 ` Darrick J. Wong
2024-01-12 4:41 ` Christoph Hellwig
0 siblings, 2 replies; 12+ messages in thread
From: Zorro Lang @ 2024-01-11 21:17 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Darrick J. Wong, fstests, linux-xfs
On Thu, Jan 11, 2024 at 06:25:56PM +0100, Christoph Hellwig wrote:
> On Thu, Jan 11, 2024 at 09:20:22AM -0800, Darrick J. Wong wrote:
> > > + mountpoint $mountpoint >/dev/null || echo "$mountpoint is not mounted"
> >
> > The helper needs to return nonzero on failure, e.g.
> >
> > if ! mountpoint -q $mountpoint; then
> > echo "$mountpoint is not mounted"
> > return 1
> > fi
>
> No, it doesn't.. I actually did exactly that first, but that causes the
> test to be _notrun instead of reporting the error and thus telling the
> author that they usage of this helper is wrong.
So below "usage" message won't be gotten either, if a _notrun be called
after this helper return 1 .
if [ -z "$device" ] || [ -z "$mountpoint" ]; then
echo "Usage: _supports_xfs_scrub mountpoint device"
return 1
fi
If there's not _notrun after that, the message will be gotten I think.
So I think the "return 1" makes sense.
What do both of you think ?
Thanks,
Zorro
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-11 21:17 ` Zorro Lang
@ 2024-01-12 2:17 ` Darrick J. Wong
2024-01-12 4:42 ` Christoph Hellwig
2024-01-12 4:41 ` Christoph Hellwig
1 sibling, 1 reply; 12+ messages in thread
From: Darrick J. Wong @ 2024-01-12 2:17 UTC (permalink / raw)
To: Zorro Lang; +Cc: Christoph Hellwig, fstests, linux-xfs
On Fri, Jan 12, 2024 at 05:17:02AM +0800, Zorro Lang wrote:
> On Thu, Jan 11, 2024 at 06:25:56PM +0100, Christoph Hellwig wrote:
> > On Thu, Jan 11, 2024 at 09:20:22AM -0800, Darrick J. Wong wrote:
> > > > + mountpoint $mountpoint >/dev/null || echo "$mountpoint is not mounted"
> > >
> > > The helper needs to return nonzero on failure, e.g.
> > >
> > > if ! mountpoint -q $mountpoint; then
> > > echo "$mountpoint is not mounted"
> > > return 1
> > > fi
> >
> > No, it doesn't.. I actually did exactly that first, but that causes the
> > test to be _notrun instead of reporting the error and thus telling the
> > author that they usage of this helper is wrong.
>
> So below "usage" message won't be gotten either, if a _notrun be called
> after this helper return 1 .
>
> if [ -z "$device" ] || [ -z "$mountpoint" ]; then
> echo "Usage: _supports_xfs_scrub mountpoint device"
> return 1
> fi
>
> If there's not _notrun after that, the message will be gotten I think.
> So I think the "return 1" makes sense.
>
> What do both of you think ?
_fail "\$mountpoint must be mounted to use _require_scratch_xfs_scrub" ?
--D
> Thanks,
> Zorro
>
> >
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-11 21:17 ` Zorro Lang
2024-01-12 2:17 ` Darrick J. Wong
@ 2024-01-12 4:41 ` Christoph Hellwig
1 sibling, 0 replies; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-12 4:41 UTC (permalink / raw)
To: Zorro Lang; +Cc: Christoph Hellwig, Darrick J. Wong, fstests, linux-xfs
On Fri, Jan 12, 2024 at 05:17:02AM +0800, Zorro Lang wrote:
> > No, it doesn't.. I actually did exactly that first, but that causes the
> > test to be _notrun instead of reporting the error and thus telling the
> > author that they usage of this helper is wrong.
>
> So below "usage" message won't be gotten either, if a _notrun be called
> after this helper return 1 .
True. But for the case reproducing my original error where I just
misplaced it it does get shown.
> If there's not _notrun after that, the message will be gotten I think.
> So I think the "return 1" makes sense.
As this point we might as well skip this patch, as it won't be useful.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub
2024-01-12 2:17 ` Darrick J. Wong
@ 2024-01-12 4:42 ` Christoph Hellwig
0 siblings, 0 replies; 12+ messages in thread
From: Christoph Hellwig @ 2024-01-12 4:42 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: Zorro Lang, Christoph Hellwig, fstests, linux-xfs
On Thu, Jan 11, 2024 at 06:17:49PM -0800, Darrick J. Wong wrote:
> > If there's not _notrun after that, the message will be gotten I think.
> > So I think the "return 1" makes sense.
> >
> > What do both of you think ?
>
> _fail "\$mountpoint must be mounted to use _require_scratch_xfs_scrub" ?
Yes, that's better. I didn't even remember _fail exists..
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-01-12 4:42 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-11 14:24 _supports_xfs_scrub cleanups Christoph Hellwig
2024-01-11 14:24 ` [PATCH 1/3] xfs: check that the mountpoint is actually mounted in _supports_xfs_scrub Christoph Hellwig
2024-01-11 17:20 ` Darrick J. Wong
2024-01-11 17:25 ` Christoph Hellwig
2024-01-11 21:17 ` Zorro Lang
2024-01-12 2:17 ` Darrick J. Wong
2024-01-12 4:42 ` Christoph Hellwig
2024-01-12 4:41 ` Christoph Hellwig
2024-01-11 14:24 ` [PATCH 2/3] xfs: add a _scratch_require_xfs_scrub helper Christoph Hellwig
2024-01-11 17:20 ` Darrick J. Wong
2024-01-11 14:24 ` [PATCH 3/3] xfs/262: call _scratch_require_xfs_scrub Christoph Hellwig
2024-01-11 17:20 ` Darrick J. Wong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox