On Tue, May 05, 2015 at 08:01:33AM +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > With the change to CRCs by default, the mkfs inode size is defaults > to 512 bytes and the minimum block size changes to 1024 bytes. This > causes mismatches with golden output that expects the inode size to > be 256 bytes, and some tests are tailored around the amount of space > inside a 256 byte inode. Fix them with appropriate filtering or mkfs > parameters to allow 256 byte inodes to be used. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > tests/xfs/073 | 4 ++-- > tests/xfs/096 | 6 +++--- > tests/xfs/096.external | 12 ++++++------ > tests/xfs/096.internal | 12 ++++++------ > tests/xfs/187 | 4 ++-- > tests/xfs/194 | 4 +++- > tests/xfs/199 | 2 +- > tests/xfs/206 | 10 ++++++---- > tests/xfs/206.out | 12 ++++++------ > tests/xfs/259 | 21 ++++++++++++++++++--- > tests/xfs/292 | 4 ++-- > tests/xfs/292.out | 2 -- > tests/xfs/300 | 3 ++- > 13 files changed, 57 insertions(+), 39 deletions(-) > > diff --git a/tests/xfs/073 b/tests/xfs/073 > index 07fc71b..45a3fdf 100755 > --- a/tests/xfs/073 > +++ b/tests/xfs/073 > @@ -136,7 +136,7 @@ _require_loop > > rm -f $seqres.full > > -_scratch_mkfs_xfs -dsize=41m,agcount=2 | _filter_mkfs 2>/dev/null > +_scratch_mkfs_xfs -m crc=0 -dsize=41m,agcount=2 | _filter_mkfs 2>/dev/null Adding "-m crc=0" to mkfs directly will break testing on older distros where mkfs.xfs doesn't have crc support, e.g. RHEL6 I haven't figured out a better way, but I was thinking about tweaking _scratch_mkfs_xfs or $MKFS_XFS_PROG based on mkfs.xfs supports crc or not. Thanks, Eryu > _scratch_mount 2>/dev/null || _fail "initial scratch mount failed" > > echo > @@ -156,7 +156,7 @@ _verify_copy $imgs.image $SCRATCH_DEV $SCRATCH_MNT > > echo > echo === copying scratch device to single target, large ro device > -${MKFS_XFS_PROG} -dfile,name=$imgs.source,size=100g | _filter_mkfs 2>/dev/null > +${MKFS_XFS_PROG} -m crc=0 -dfile,name=$imgs.source,size=100g | _filter_mkfs 2>/dev/null > rmdir $imgs.source_dir 2>/dev/null > mkdir $imgs.source_dir > > diff --git a/tests/xfs/096 b/tests/xfs/096 > index 2da8fa1..c289c10 100755 > --- a/tests/xfs/096 > +++ b/tests/xfs/096 > @@ -77,7 +77,7 @@ mkfs_filter() > -e 's/swidth=[0-9][0-9]* blks$/&, unwritten=1/' \ > -e 's/rtextents=[0-9][0-9]*/rtextents=N/' \ > -e 's/meta-data=[^ ]*/meta-data=DEV/' \ > - -e 's/ *isize/ isize/' \ > + -e 's/ *isize=[0-9]* / isize=N /' \ > -e '/ *= *sectsz=[0-9][0-9]* *attr=[0-9][0-9]*.*$/d' \ > -e '/ *= *mmr=[0-9][0-9]* *$/d' \ > -e 's/ *mixed-case=[YN]//' \ > @@ -130,9 +130,9 @@ cat >$tmp.seq.params <<EOF > # same test but get log stripe from data stripe > -l version=2 -d su=$big_su,sw=1 > # test out data stripe > - -l version=1 -d su=$big_su,sw=1 > + -m crc=0 -l version=1 -d su=$big_su,sw=1 > # test out data stripe the same but using sunit & swidth > - -l version=1 -d sunit=`expr $big_su / 512`,swidth=`expr $big_su / 512` > + -m crc=0 -l version=1 -d sunit=`expr $big_su / 512`,swidth=`expr $big_su / 512` > EOF > > # > diff --git a/tests/xfs/096.external b/tests/xfs/096.external > index 7923340..3122330 100644 > --- a/tests/xfs/096.external > +++ b/tests/xfs/096.external > @@ -7,7 +7,7 @@ log stripe unit (262656) must be a multiple of the block size (4096) > > # test log stripe greater than LR size > --- mkfs=-l version=2,su=266240 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=0 swidth=0 blks, unwritten=1 > naming =version 2 bsize=4096 > @@ -17,7 +17,7 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N > > # same test but get log stripe from data stripe > --- mkfs=-l version=2 -d su=266240,sw=1 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=65 swidth=65 blks, unwritten=1 > naming =version 2 bsize=4096 > @@ -27,8 +27,8 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N > > > # test out data stripe > ---- mkfs=-l version=1 -d su=266240,sw=1 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +--- mkfs=-m crc=0 -l version=1 -d su=266240,sw=1 --- > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=65 swidth=65 blks, unwritten=1 > naming =version 2 bsize=4096 > @@ -38,8 +38,8 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N > > > # test out data stripe the same but using sunit & swidth > ---- mkfs=-l version=1 -d sunit=520,swidth=520 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +--- mkfs=-m crc=0 -l version=1 -d sunit=520,swidth=520 --- > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=65 swidth=65 blks, unwritten=1 > naming =version 2 bsize=4096 > diff --git a/tests/xfs/096.internal b/tests/xfs/096.internal > index eaba13f..80201d2 100644 > --- a/tests/xfs/096.internal > +++ b/tests/xfs/096.internal > @@ -7,7 +7,7 @@ log stripe unit (262656) must be a multiple of the block size (4096) > > # test log stripe greater than LR size > --- mkfs=-l version=2,su=266240 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=0 swidth=0 blks, unwritten=1 > naming =version 2 bsize=4096 > @@ -18,7 +18,7 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N > > # same test but get log stripe from data stripe > --- mkfs=-l version=2 -d su=266240,sw=1 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=65 swidth=65 blks, unwritten=1 > naming =version 2 bsize=4096 > @@ -28,8 +28,8 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N > > > # test out data stripe > ---- mkfs=-l version=1 -d su=266240,sw=1 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +--- mkfs=-m crc=0 -l version=1 -d su=266240,sw=1 --- > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=65 swidth=65 blks, unwritten=1 > naming =version 2 bsize=4096 > @@ -39,8 +39,8 @@ realtime =REALTIME extsz=N, blocks=N, rtextents=N > > > # test out data stripe the same but using sunit & swidth > ---- mkfs=-l version=1 -d sunit=520,swidth=520 --- > -meta-data=DEV isize=256 agcount=N, agsize=N blks > +--- mkfs=-m crc=0 -l version=1 -d sunit=520,swidth=520 --- > +meta-data=DEV isize=N agcount=N, agsize=N blks > data = bsize=4096 blocks=N, imaxpct=N > = sunit=65 swidth=65 blks, unwritten=1 > naming =version 2 bsize=4096 > diff --git a/tests/xfs/187 b/tests/xfs/187 > index 700ab04..836b924 100755 > --- a/tests/xfs/187 > +++ b/tests/xfs/187 > @@ -70,8 +70,8 @@ export MOUNT_OPTIONS="" > # lazysb, attr2 and other feature bits are held in features2 and will require > # morebitsbit on So test with lazysb and without it to see if the morebitsbit is > # okay etc. If the mkfs defaults change, these need to change as well. > -export MKFS_NO_LAZY="-l lazy-count=0 -i projid32bit=0" > -export MKFS_LAZY="-l lazy-count=1 -i projid32bit=0" > +export MKFS_NO_LAZY="-m crc=0 -l lazy-count=0 -i projid32bit=0" > +export MKFS_LAZY="-m crc=0 -l lazy-count=1 -i projid32bit=0" > > # Make sure that when we think we are testing with morebits off > # that we really are. > diff --git a/tests/xfs/194 b/tests/xfs/194 > index f56702a..e11b459 100755 > --- a/tests/xfs/194 > +++ b/tests/xfs/194 > @@ -83,7 +83,9 @@ _filter_od() > _require_scratch > unset MKFS_OPTIONS > unset XFS_MKFS_OPTIONS > -_scratch_mkfs_xfs -b size=$blksize >/dev/null 2>&1 > + > +# we need 512 byte block size, so crc's are turned off > +_scratch_mkfs_xfs -m crc=0 -b size=$blksize >/dev/null 2>&1 > _scratch_mount > > # 512b block / 4k page example: > diff --git a/tests/xfs/199 b/tests/xfs/199 > index c1b5962..0eef88b 100755 > --- a/tests/xfs/199 > +++ b/tests/xfs/199 > @@ -52,7 +52,7 @@ _require_scratch > # clear any mkfs options so taht we can directly specify the options we need to > # be able to test the features bitmask behaviour correctly. > MKFS_OPTIONS= > -_scratch_mkfs_xfs -l lazy-count=1 -i projid32bit=0 >/dev/null 2>&1 > +_scratch_mkfs_xfs -m crc=0 -l lazy-count=1 -i projid32bit=0 >/dev/null 2>&1 > > # > # Print the current flags. Just a dummy so that the test breaks > diff --git a/tests/xfs/206 b/tests/xfs/206 > index 198e413..0f5d97d 100755 > --- a/tests/xfs/206 > +++ b/tests/xfs/206 > @@ -75,19 +75,21 @@ dd if=/dev/zero of=$tmpfile bs=1 seek=19998630180864 count=1 >/dev/null 2>&1 \ > > mkfs_filter() > { > - sed -e "s,^meta-data=.*isize,meta-data=FILE isize,g" \ > + sed -e 's/meta-data=[^ ]*/meta-data=FILE/' \ > + -e 's/ *isize=[0-9]* / isize=N /' \ > -e "s/\(^log.*blocks=\)\([0-9]*,\)/\1XXXXX,/" \ > -e "s/, projid32bit=[0-9]//" \ > -e "s/ ftype=[0-9]//" \ > -e "s/\(sectsz\)\(=[0-9]* *\)/\1=512 /" \ > -e "s/\(sunit=\)\([0-9]* blks,\)/\10 blks,/" \ > + -e "s/, lazy-count=[0-9]//" \ > -e "/.*crc=/d" > } > > -# mkfs slightly smaller than that > +# mkfs slightly smaller than that, small log for speed. > echo "=== mkfs.xfs ===" > -mkfs.xfs -f -bsize=4096 -dagsize=76288719b,size=3905982455b \ > - -llazy-count=0 $tmpfile | mkfs_filter > +mkfs.xfs -f -bsize=4096 -l size=32m -dagsize=76288719b,size=3905982455b \ > + $tmpfile | mkfs_filter > > mount -o loop $tmpfile $tmpdir || _fail "!!! failed to loopback mount" > > diff --git a/tests/xfs/206.out b/tests/xfs/206.out > index da70d01..2db839d 100644 > --- a/tests/xfs/206.out > +++ b/tests/xfs/206.out > @@ -1,30 +1,30 @@ > QA output created by 206 > === truncate file === > === mkfs.xfs === > -meta-data=FILE isize=256 agcount=52, agsize=76288719 blks > +meta-data=FILE isize=N agcount=52, agsize=76288719 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=3905982455, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal log bsize=4096 blocks=XXXXX, version=2 > - = sectsz=512 sunit=0 blks, lazy-count=0 > + = sectsz=512 sunit=0 blks > realtime =none extsz=4096 blocks=0, rtextents=0 > === xfs_growfs === > -meta-data=FILE isize=256 agcount=52, agsize=76288719 blks > +meta-data=FILE isize=N agcount=52, agsize=76288719 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=3905982455, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=XXXXX, version=2 > - = sectsz=512 sunit=0 blks, lazy-count=0 > + = sectsz=512 sunit=0 blks > realtime =none extsz=4096 blocks=0, rtextents=0 > data blocks changed from 3905982455 to 4882478016 > === xfs_info === > -meta-data=FILE isize=256 agcount=64, agsize=76288719 blks > +meta-data=FILE isize=N agcount=64, agsize=76288719 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=4882478016, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=XXXXX, version=2 > - = sectsz=512 sunit=0 blks, lazy-count=0 > + = sectsz=512 sunit=0 blks > realtime =none extsz=4096 blocks=0, rtextents=0 > diff --git a/tests/xfs/259 b/tests/xfs/259 > index 6587a65..16c1935 100755 > --- a/tests/xfs/259 > +++ b/tests/xfs/259 > @@ -37,6 +37,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 > > # get standard environment, filters and checks > . ./common/rc > +. ./common/filter > > # real QA test starts here > _supported_fs xfs > @@ -47,9 +48,22 @@ _require_math > > testfile=$TEST_DIR/259.image > > -# Test various sizes slightly less than 4 TB > +# Test various sizes slightly less than 4 TB. Need to handle different > +# minimum block sizes for CRC enabled filesystems, but use a small log so we > +# don't write lots of zeros unnecessarily. > +xfs_info $TEST_DIR | _filter_mkfs 2> $tmp.mkfs > /dev/null > +. $tmp.mkfs > +if [ $_fs_has_crcs -eq 1 ]; then > + blocksize=1024 > + sizes_to_check="1024 2048 4096" > + echo "Trying to make (4 TB - 512) B long xfs fs image" > +else > + blocksize=512 > + sizes_to_check="512 1024 2048 4096" > +fi > + > four_TB=$(_math "2^42") > -for del in 512 1024 2048 4096; do > +for del in $sizes_to_check; do > ddseek=$(_math "$four_TB - $del") > echo "Trying to make (4 TB - $del) B long xfs fs image" > rm -f "$testfile" > @@ -57,7 +71,8 @@ for del in 512 1024 2048 4096; do > >/dev/null 2>&1 || echo "dd failed" > lofile=$(losetup -f) > losetup $lofile "$testfile" > - "$MKFS_XFS_PROG" -b size=512 $lofile >/dev/null || echo "mkfs failed!" > + "$MKFS_XFS_PROG" -l size=32m -b size=$blocksize $lofile \ > + >/dev/null || echo "mkfs failed!" > sync > losetup -d $lofile > done > diff --git a/tests/xfs/292 b/tests/xfs/292 > index a476d91..db890b5 100755 > --- a/tests/xfs/292 > +++ b/tests/xfs/292 > @@ -55,12 +55,12 @@ $XFS_IO_PROG -f -c "truncate 256g" $fsfile > > echo "mkfs.xfs without geometry" > mkfs.xfs -f $fsfile | _filter_mkfs 2> $tmp.mkfs > /dev/null > -grep -E 'ddev|isize|agcount|agsize' $tmp.mkfs | \ > +grep -E 'ddev|agcount|agsize' $tmp.mkfs | \ > sed -e "s:$fsfile:FILENAME:g" > > echo "mkfs.xfs with cmdline geometry" > mkfs.xfs -f -d su=16k,sw=5 $fsfile | _filter_mkfs 2> $tmp.mkfs > /dev/null > -grep -E 'ddev|isize|agcount|agsize' $tmp.mkfs | \ > +grep -E 'ddev|agcount|agsize' $tmp.mkfs | \ > sed -e "s:$fsfile:FILENAME:g" > > rm -f $fsfile > diff --git a/tests/xfs/292.out b/tests/xfs/292.out > index 2837d74..1d69507 100644 > --- a/tests/xfs/292.out > +++ b/tests/xfs/292.out > @@ -1,11 +1,9 @@ > QA output created by 292 > mkfs.xfs without geometry > ddev=FILENAME > -isize=256 > agcount=4 > agsize=16777216 > mkfs.xfs with cmdline geometry > ddev=FILENAME > -isize=256 > agcount=16 > agsize=4194304 > diff --git a/tests/xfs/300 b/tests/xfs/300 > index db83fd4..9489cbe 100755 > --- a/tests/xfs/300 > +++ b/tests/xfs/300 > @@ -51,7 +51,8 @@ getenforce | grep -q "Enforcing\|Permissive" || _notrun "SELinux not enabled" > > rm -f $seqres.full > > -_scratch_mkfs_xfs -i size=256 >> $seqres.full 2>&1 || _fail "mkfs failed" > +_scratch_mkfs_xfs -m crc=0 -i size=256 >> $seqres.full 2>&1 \ > + || _fail "mkfs failed" > > # Manually mount to avoid fs-wide context set by default in xfstests > mount $SCRATCH_DEV $SCRATCH_MNT > -- > 2.0.0 > > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html