Commit
31f48569c353 ("xfs/030: fix output on newer filesystems") added
more lines to .out file to match the output from XFS with reflink
support, but it broke test on older XFS.
Dave explained the reason and pointed out the correct way to fix it, so
I just quote Dave's mail here:
"The problem here is that reflink triggers a change in the initial
population of the AGFL - from 4 blocks to 6 blocks, and so repair warns
6 times instead of 4. After filtering, that gives 6 indentical output
lines instead of 4.
Doing something as simple as collapsing repeated identical lines (e.g
filtering through uniq) will work for all filesystem formats and any
future changes that modify the initial AGFL population."
Suggested-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
for structure in 'sb 0' 'agf 0' 'agi 0' 'agfl 0'
do
echo "Corrupting $structure - setting bits to $1"
- _check_repair $1 "$structure" |
+ _check_repair $1 "$structure" | uniq |
sed -e '/^error following ag 0 unlinked list$/d' \
-e '/^bad agbno AGBNO for finobt/d' \
-e '/^bad agbno AGBNO for rmapbt/d' \
Phase 1 - find and verify superblock...
Phase 2 - zero log...
- scan filesystem freespace and inode maps...
-bad agbno AGBNO in agfl, agno 0
-bad agbno AGBNO in agfl, agno 0
-bad agbno AGBNO in agfl, agno 0
bad agbno AGBNO in agfl, agno 0
- found root inode chunk
Phase 3 - for each AG...
Phase 2 - using <TYPEOF> log
- zero log...
- scan filesystem freespace and inode maps...
-bad agbno AGBNO in agfl, agno 0
-bad agbno AGBNO in agfl, agno 0
-bad agbno AGBNO in agfl, agno 0
-bad agbno AGBNO in agfl, agno 0
-bad agbno AGBNO in agfl, agno 0
bad agbno AGBNO in agfl, agno 0
- found root inode chunk
Phase 3 - for each AG...