Message ID | 174259234036.743619.7066882477727740142.stgit@frogsfrogsfrogs (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/4] xfs/614: determine the sector size of the fs image by doing a test format | expand |
On Fri, Mar 21, 2025 at 02:28:26PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > While QA'ing zoned filesystem support, I discovered some design errors > in this test: > > 1) Since we're test formatting a sparse file on an xfs filesystem, > there's no need to play games with optimal device size; we can create > a totally sparse file that's the same size as SCRATCH_DEV. > > 2) mkfs.xfs cannot create realtime files, so if it fails with that, > there's no need to continue the test. > > 3) If mkfs -p fails for none of the proscribed reasons, it should exit > the test. The final cat $tmp.mkfs will take care of tweaking the golden > output to register the test failure for further investigation. > > Cc: <fstests@vger.kernel.org> # v2025.03.09 > Fixes: 6d39dc34e61e11 ("xfs: test filesystem creation with xfs_protofile") > Signed-off-by: "Darrick J. Wong" <djwong@kernel.org> > --- Make sense to me, Reviewed-by: Zorro Lang <zlang@redhat.com> > tests/xfs/818 | 19 ++++++++++++++++--- > 1 file changed, 16 insertions(+), 3 deletions(-) > > > diff --git a/tests/xfs/818 b/tests/xfs/818 > index aeb462353df7e9..bc809390b9e340 100755 > --- a/tests/xfs/818 > +++ b/tests/xfs/818 > @@ -75,9 +75,8 @@ _run_fsstress -n 1000 -d $SCRATCH_MNT/newfiles > make_stat $SCRATCH_MNT before > make_md5 $SCRATCH_MNT before > > -kb_needed=$(du -k -s $SCRATCH_MNT | awk '{print $1}') > -img_size=$((kb_needed * 2)) > -test "$img_size" -lt $((300 * 1024)) && img_size=$((300 * 1024)) > +scratch_sectors="$(blockdev --getsz $SCRATCH_DEV)" > +img_size=$((scratch_sectors * 512 / 1024)) > > echo "Clone image with protofile" > $XFS_PROTOFILE_PROG $SCRATCH_MNT > $testfiles/protofile > @@ -99,7 +98,21 @@ if ! _try_mkfs_dev -p $testfiles/protofile $testfiles/image &> $tmp.mkfs; then > if grep -q 'No space left on device' $tmp.mkfs; then > _notrun "not enough space in filesystem" > fi > + > + # mkfs cannot create realtime files. > + # > + # If zoned=1 is in MKFS_OPTIONS, mkfs will create an internal realtime > + # volume with rtinherit=1 and fail, so we need to _notrun that case. > + # > + # If zoned=1 is /not/ in MKFS_OPTIONS, we didn't pass a realtime device > + # to mkfs so it will not create realtime files. The format should work > + # just fine. > + if grep -q 'creating realtime files from proto file not supported' $tmp.mkfs; then > + _notrun "mkfs cannot create realtime files" > + fi > + > cat $tmp.mkfs > + exit > fi > > _mount $testfiles/image $testfiles/mount >
diff --git a/tests/xfs/818 b/tests/xfs/818 index aeb462353df7e9..bc809390b9e340 100755 --- a/tests/xfs/818 +++ b/tests/xfs/818 @@ -75,9 +75,8 @@ _run_fsstress -n 1000 -d $SCRATCH_MNT/newfiles make_stat $SCRATCH_MNT before make_md5 $SCRATCH_MNT before -kb_needed=$(du -k -s $SCRATCH_MNT | awk '{print $1}') -img_size=$((kb_needed * 2)) -test "$img_size" -lt $((300 * 1024)) && img_size=$((300 * 1024)) +scratch_sectors="$(blockdev --getsz $SCRATCH_DEV)" +img_size=$((scratch_sectors * 512 / 1024)) echo "Clone image with protofile" $XFS_PROTOFILE_PROG $SCRATCH_MNT > $testfiles/protofile @@ -99,7 +98,21 @@ if ! _try_mkfs_dev -p $testfiles/protofile $testfiles/image &> $tmp.mkfs; then if grep -q 'No space left on device' $tmp.mkfs; then _notrun "not enough space in filesystem" fi + + # mkfs cannot create realtime files. + # + # If zoned=1 is in MKFS_OPTIONS, mkfs will create an internal realtime + # volume with rtinherit=1 and fail, so we need to _notrun that case. + # + # If zoned=1 is /not/ in MKFS_OPTIONS, we didn't pass a realtime device + # to mkfs so it will not create realtime files. The format should work + # just fine. + if grep -q 'creating realtime files from proto file not supported' $tmp.mkfs; then + _notrun "mkfs cannot create realtime files" + fi + cat $tmp.mkfs + exit fi _mount $testfiles/image $testfiles/mount