2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2008 Christoph Hellwig.
7 # Check that the features2 location fixups work correctly. We check both
8 # a regular read-write mount of a filesystem and the case where the
9 # filesystem is first mounted read-only and then later remounted read-write,
10 # which is the usual case for the root filesystem.
13 seqres=$RESULT_DIR/$seq
14 echo "QA output created by $seq"
18 status=1 # failure is the default!
23 _scratch_unmount >/dev/null 2>&1
25 trap "_cleanup; exit \$status" 0 1 2 3 15
27 # get standard environment, filters and checks
31 # real QA test starts here
37 # clear any mkfs options so that we can directly specify the options we need to
38 # be able to test the features bitmask behaviour correctly.
40 _scratch_mkfs_xfs -m crc=0 -l lazy-count=1 >/dev/null 2>&1
42 # Grab the initial configuration. This checks mkfs sets the fields properly, and
43 # gives us the values the resultant tests should be the same as for testing at
44 # the end of the test. We don't hard code feature values, because that makes the
45 # test break every time we change mkfs feature defaults.
46 f2=`_scratch_xfs_get_sb_field features2`
47 bf2=`_scratch_xfs_get_sb_field bad_features2`
50 # Now clear the normal flags
52 echo "Clearing features2:"
53 _scratch_xfs_db -x -c 'sb' -c 'write features2 0'
57 rwf2=`_scratch_xfs_get_sb_field features2`
60 # Clear the normal flags again for the second rount.
62 echo "Clearing features2:"
63 _scratch_xfs_db -x -c 'sb' -c 'write features2 0'
66 # And print the flags after a mount ro and remount rw
69 _scratch_mount -o remount,rw
71 rof2=`_scratch_xfs_get_sb_field features2`
73 [ "$f2" != "$bf2" ] && echo "mkfs: features2 $f2 != bad_features2 $bf2"
74 [ "$f2" != "$rwf2" ] && echo "mount rw: old features2 $f2 != new features2 $rwf2"
75 [ "$f2" != "$rof2" ] && echo "ro->rw: old features2 $f2 != new features2 $rof2"