#
 # filter out counts which will vary
 #   - extsz, blocks, agsize, agcount, device name, rtextents
+#   - log version varies for crc enabled fs
+#   - lsunit varies for 512/4k sector devices
 # filter out differences between linux and irix:
 #   - sectsz on Linux
 #   - mmr, mixed-case on IRIX
 #           =                       sunit=0 blks
 #  realtime =none                   extsz=65536  blocks=N, rtextents=N
 #
-_mkfs_filter()
+mkfs_filter()
 {
    tee -a $seqres.full | \
    sed \
        -e '/ *= *mmr=[0-9][0-9]* *$/d' \
        -e 's/ *mixed-case=[YN]//' \
        -e 's/ *ascii-ci=[01]//' \
+       -e 's/\(version=\)\([12]\)/\1N/' \
+       -e 's/\(sunit=\)\([018] blks\)/\1N blks/' \
        -e 's/sectsz=[0-9][0-9]* *//' \
        -e 's/, lazy-count.*//' \
        -e '/inode-paths/d' \
     fi
     echo "--- mkfs=$mkfs ---"
     export MKFS_OPTIONS="$mkfs"
-    _scratch_mkfs_xfs 2>&1 | _mkfs_filter
+    _scratch_mkfs_xfs 2>&1 | mkfs_filter
     echo ""
     echo ""
 done
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=0      swidth=0 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=2
-         =                       sunit=8 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=65     swidth=65 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=2
-         =                       sunit=0 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=65     swidth=65 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=1
-         =                       sunit=0 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=65     swidth=65 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=1
-         =                       sunit=0 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=0      swidth=0 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=2
-         =                       sunit=8 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=65     swidth=65 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=2
-         =                       sunit=8 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=65     swidth=65 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=1
-         =                       sunit=0 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 data     =                       bsize=4096   blocks=N, imaxpct=N
          =                       sunit=65     swidth=65 blks, unwritten=1
 naming   =version 2              bsize=4096
-log      =LOG                    bsize=4096   blocks=N, version=1
-         =                       sunit=0 blks
+log      =LOG                    bsize=4096   blocks=N, version=N
+         =                       sunit=N blks
 realtime =REALTIME               extsz=N, blocks=N, rtextents=N
 
 
 
 dd if=/dev/zero of=$tmpfile bs=1 seek=19998630180864 count=1 >/dev/null 2>&1 \
        || _fail "!!! failed to truncate loopback file to correct size"
 
+mkfs_filter()
+{
+       sed -e "s,^meta-data=.*isize,meta-data=FILE                   isize,g" \
+           -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 "/.*crc=/d"
+}
+
 # mkfs slightly smaller than that
 echo "=== mkfs.xfs ==="
-mkfs.xfs -f -bsize=4096 -dagsize=76288719b,size=3905982455b -llazy-count=0 $tmpfile \
-       | sed -e "s,^meta-data=.*isize,meta-data=FILE                   isize,g" \
-               -e "s/\(^log.*blocks=\)\([0-9]*,\)/\1XXXXX,/" \
-               -e "s/, projid32bit=[0-9]//" \
-               -e "s/ ftype=[0-9]//" \
-               -e "/.*crc=/d"
+mkfs.xfs -f -bsize=4096 -dagsize=76288719b,size=3905982455b \
+        -llazy-count=0 $tmpfile  | mkfs_filter
 
 mount -o loop $tmpfile $tmpdir || _fail "!!! failed to loopback mount"
 
 # see what happens when we growfs it
 echo "=== xfs_growfs ==="
-xfs_growfs $tmpdir \
-       | sed -e "s,^meta-data=.*isize,meta-data=FILE                   isize,g" \
-               -e "s/\(^log.*blocks=\)\([0-9]*,\)/\1XXXXX,/" \
-               -e "s/, projid32bit=[0-9]//" \
-               -e "s/ ftype=[0-9]//" \
-               -e "/.*crc=/d"
+xfs_growfs $tmpdir  | mkfs_filter
 
 # and double-check the new geometry
 echo "=== xfs_info ==="
-xfs_info $tmpdir \
-       | sed -e "s,^meta-data=.*isize,meta-data=FILE                   isize,g" \
-               -e "s/\(^log.*blocks=\)\([0-9]*,\)/\1XXXXX,/" \
-               -e "s/, projid32bit=[0-9]//" \
-               -e "s/ ftype=[0-9]//" \
-               -e "/.*crc=/d"
+xfs_info $tmpdir | mkfs_filter
 
 # _cleanup cleans up for us