xfs/530: skip test if user MKFS_OPTIONS screw up formatting
authorDarrick J. Wong <djwong@kernel.org>
Wed, 28 Jul 2021 20:00:20 +0000 (13:00 -0700)
committerEryu Guan <guaneryu@gmail.com>
Sun, 1 Aug 2021 13:10:11 +0000 (21:10 +0800)
commit4fdd27ce193ec2a388d0b7d0f5ea1067c3cc876d
treeeb72615471ff176ea1ae12865eef1260bc388915
parent7446ce37eac47c5f68a1999c361335b5bd7edd4b
xfs/530: skip test if user MKFS_OPTIONS screw up formatting

Skip this test if the user's MKFS_OPTIONS are not compatible with the
realtime parameters that we're injecting in order to test growfs bugs.
Because this test is trying to trigger a specific kernel bug, we need
mkfs to format a filesystem with very specific geometry parameters.

The first problem stems from the fact that the test performs a default
mkfs, computes a suitable realtime geometry from that filesystem, and
then formats a second time with an explicit blocksize option to mkfs.
If the original MKFS_OPTS contained a blocksize directive, the mkfs will
fail because the option was respecified.  The two blocksize options will
be the same, so we drop the explicit blocksize option.

However, this exposes a second problem: MKFS_OPTIONS might contain
options that are not compatible with any realtime filesystem.  If that
happens, _scratch_do_mkfs will "helpfully" drop MKFS_OPTIONS and try
again with only the options specified by the test.  This gets us a
filesystem with the given rt geometry, but it could be missing critical
parameters from MKFS_OPTIONS (like blocksize).  The test will then fail
to exercise the growfs bugfix, so the second part of the fix is to check
that the filesystem we're going to test actually has the geometry
parameters that we require.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/xfs/530