public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] xfs: test xfs_growfs with too-small size expansion
@ 2024-01-28 15:56 Zorro Lang
  2024-01-29  4:02 ` David Disseldorp
  0 siblings, 1 reply; 3+ messages in thread
From: Zorro Lang @ 2024-01-28 15:56 UTC (permalink / raw)
  To: fstests; +Cc: linux-xfs

This's a regression test of 84712492e6da ("xfs: short circuit
xfs_growfs_data_private() if delta is zero").

If try to do growfs with "too-small" size expansion, might lead to a
delta of "0" in xfs_growfs_data_private(), then end up in the shrink
case and emit the EXPERIMENTAL warning even if we're not changing
anything at all.

Signed-off-by: Zorro Lang <zlang@redhat.com>
---
 tests/xfs/999     | 53 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/xfs/999.out |  2 ++
 2 files changed, 55 insertions(+)
 create mode 100755 tests/xfs/999
 create mode 100644 tests/xfs/999.out

diff --git a/tests/xfs/999 b/tests/xfs/999
new file mode 100755
index 00000000..09192ba3
--- /dev/null
+++ b/tests/xfs/999
@@ -0,0 +1,53 @@
+#! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2024 Red Hat, Inc.  All Rights Reserved.
+#
+# FS QA Test No. 999
+#
+# Test xfs_growfs with "too-small" size expansion, which lead to a delta of "0"
+# in xfs_growfs_data_private. This's a regression test of 84712492e6da ("xfs:
+# short circuit xfs_growfs_data_private() if delta is zero").
+#
+. ./common/preamble
+_begin_fstest auto quick growfs
+
+_cleanup()
+{
+	local dev
+        $UMOUNT_PROG $LOOP_MNT 2>/dev/null
+	dev=$(losetup -j testfile | cut -d: -f1)
+	losetup -d $dev 2>/dev/null
+        rm -rf $LOOP_IMG $LOOP_MNT
+        cd /
+        rm -f $tmp.*
+}
+
+# real QA test starts here
+_supported_fs xfs
+_fixed_by_kernel_commit 84712492e6da \
+	"xfs: short circuit xfs_growfs_data_private() if delta is zero"
+_require_test
+_require_loop
+_require_xfs_io_command "truncate"
+
+LOOP_IMG=$TEST_DIR/$seq.dev
+LOOP_MNT=$TEST_DIR/$seq.mnt
+rm -rf $LOOP_IMG $LOOP_MNT
+mkdir -p $LOOP_MNT
+# 1G image
+$XFS_IO_PROG -f -c "truncate 1073741824" $LOOP_IMG
+$MKFS_XFS_PROG -f $LOOP_IMG >$seqres.full
+# extend by just 8K
+$XFS_IO_PROG -f -c "truncate 1073750016" $LOOP_IMG
+_mount -oloop $LOOP_IMG $LOOP_MNT
+# A known bug shows "XFS_IOC_FSGROWFSDATA xfsctl failed: No space left on
+# device" at here, refer to _fixed_by_kernel_commit above
+$XFS_GROWFS_PROG $LOOP_MNT >$seqres.full
+if [ $? -ne 0 ];then
+	echo "xfs_growfs fails!"
+fi
+
+echo "Silence is golden"
+# success, all done
+status=0
+exit
diff --git a/tests/xfs/999.out b/tests/xfs/999.out
new file mode 100644
index 00000000..3b276ca8
--- /dev/null
+++ b/tests/xfs/999.out
@@ -0,0 +1,2 @@
+QA output created by 999
+Silence is golden
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] xfs: test xfs_growfs with too-small size expansion
  2024-01-28 15:56 [PATCH] xfs: test xfs_growfs with too-small size expansion Zorro Lang
@ 2024-01-29  4:02 ` David Disseldorp
  2024-02-02 12:23   ` Zorro Lang
  0 siblings, 1 reply; 3+ messages in thread
From: David Disseldorp @ 2024-01-29  4:02 UTC (permalink / raw)
  To: Zorro Lang; +Cc: fstests, linux-xfs

Looks fine.
Reviewed-by: David Disseldorp <ddiss@suse.de>

A couple of minor comments below...

On Sun, 28 Jan 2024 23:56:53 +0800, Zorro Lang wrote:

> This's a regression test of 84712492e6da ("xfs: short circuit
> xfs_growfs_data_private() if delta is zero").
> 
> If try to do growfs with "too-small" size expansion, might lead to a
> delta of "0" in xfs_growfs_data_private(), then end up in the shrink
> case and emit the EXPERIMENTAL warning even if we're not changing
> anything at all.
> 
> Signed-off-by: Zorro Lang <zlang@redhat.com>
> ---
>  tests/xfs/999     | 53 +++++++++++++++++++++++++++++++++++++++++++++++
>  tests/xfs/999.out |  2 ++
>  2 files changed, 55 insertions(+)
>  create mode 100755 tests/xfs/999
>  create mode 100644 tests/xfs/999.out
> 
> diff --git a/tests/xfs/999 b/tests/xfs/999
> new file mode 100755
> index 00000000..09192ba3
> --- /dev/null
> +++ b/tests/xfs/999
> @@ -0,0 +1,53 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2024 Red Hat, Inc.  All Rights Reserved.
> +#
> +# FS QA Test No. 999

I'll assume 999 is just a placeholder...

> +#
> +# Test xfs_growfs with "too-small" size expansion, which lead to a delta of "0"
> +# in xfs_growfs_data_private. This's a regression test of 84712492e6da ("xfs:
> +# short circuit xfs_growfs_data_private() if delta is zero").
> +#
> +. ./common/preamble
> +_begin_fstest auto quick growfs
> +
> +_cleanup()
> +{
> +	local dev
> +        $UMOUNT_PROG $LOOP_MNT 2>/dev/null
> +	dev=$(losetup -j testfile | cut -d: -f1)
> +	losetup -d $dev 2>/dev/null
> +        rm -rf $LOOP_IMG $LOOP_MNT
> +        cd /
> +        rm -f $tmp.*

nit: tabs and spaces mixed above

> +}
> +
> +# real QA test starts here
> +_supported_fs xfs
> +_fixed_by_kernel_commit 84712492e6da \
> +	"xfs: short circuit xfs_growfs_data_private() if delta is zero"
> +_require_test
> +_require_loop
> +_require_xfs_io_command "truncate"

nit: it doesn't seem common for growfs, but you might want to add a:
  _require_command "$XFS_GROWFS_PROG" xfs_growfs

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] xfs: test xfs_growfs with too-small size expansion
  2024-01-29  4:02 ` David Disseldorp
@ 2024-02-02 12:23   ` Zorro Lang
  0 siblings, 0 replies; 3+ messages in thread
From: Zorro Lang @ 2024-02-02 12:23 UTC (permalink / raw)
  To: David Disseldorp; +Cc: Zorro Lang, fstests, linux-xfs

On Mon, Jan 29, 2024 at 03:02:47PM +1100, David Disseldorp wrote:
> Looks fine.
> Reviewed-by: David Disseldorp <ddiss@suse.de>

Thanks for reviewing :)

> 
> A couple of minor comments below...
> 
> On Sun, 28 Jan 2024 23:56:53 +0800, Zorro Lang wrote:
> 
> > This's a regression test of 84712492e6da ("xfs: short circuit
> > xfs_growfs_data_private() if delta is zero").
> > 
> > If try to do growfs with "too-small" size expansion, might lead to a
> > delta of "0" in xfs_growfs_data_private(), then end up in the shrink
> > case and emit the EXPERIMENTAL warning even if we're not changing
> > anything at all.
> > 
> > Signed-off-by: Zorro Lang <zlang@redhat.com>
> > ---
> >  tests/xfs/999     | 53 +++++++++++++++++++++++++++++++++++++++++++++++
> >  tests/xfs/999.out |  2 ++
> >  2 files changed, 55 insertions(+)
> >  create mode 100755 tests/xfs/999
> >  create mode 100644 tests/xfs/999.out
> > 
> > diff --git a/tests/xfs/999 b/tests/xfs/999
> > new file mode 100755
> > index 00000000..09192ba3
> > --- /dev/null
> > +++ b/tests/xfs/999
> > @@ -0,0 +1,53 @@
> > +#! /bin/bash
> > +# SPDX-License-Identifier: GPL-2.0
> > +# Copyright (c) 2024 Red Hat, Inc.  All Rights Reserved.
> > +#
> > +# FS QA Test No. 999
> 
> I'll assume 999 is just a placeholder...

Yeah, I'll replace it when I merge it.

> 
> > +#
> > +# Test xfs_growfs with "too-small" size expansion, which lead to a delta of "0"
> > +# in xfs_growfs_data_private. This's a regression test of 84712492e6da ("xfs:
> > +# short circuit xfs_growfs_data_private() if delta is zero").
> > +#
> > +. ./common/preamble
> > +_begin_fstest auto quick growfs
> > +
> > +_cleanup()
> > +{
> > +	local dev
> > +        $UMOUNT_PROG $LOOP_MNT 2>/dev/null
> > +	dev=$(losetup -j testfile | cut -d: -f1)
> > +	losetup -d $dev 2>/dev/null
> > +        rm -rf $LOOP_IMG $LOOP_MNT
> > +        cd /
> > +        rm -f $tmp.*
> 
> nit: tabs and spaces mixed above

Oh, mistake, I'll change all of them to tabs.

> 
> > +}
> > +
> > +# real QA test starts here
> > +_supported_fs xfs
> > +_fixed_by_kernel_commit 84712492e6da \
> > +	"xfs: short circuit xfs_growfs_data_private() if delta is zero"
> > +_require_test
> > +_require_loop
> > +_require_xfs_io_command "truncate"
> 
> nit: it doesn't seem common for growfs, but you might want to add a:
>   _require_command "$XFS_GROWFS_PROG" xfs_growfs

Sure, will do it. If you don't need to check V2, I'll merge this patch
directly with above changes, as you've given a RVB :)

Thanks,
Zorro

> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-02-02 12:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-28 15:56 [PATCH] xfs: test xfs_growfs with too-small size expansion Zorro Lang
2024-01-29  4:02 ` David Disseldorp
2024-02-02 12:23   ` Zorro Lang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox