mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
Make sure we take into account newly reserved blocks as introduced
in 964468. Merge of master-melb:xfs-cmds:29013a by kenmcd.
This commit is contained in:
@@ -67,21 +67,36 @@ xfs_db -r -c "freesp -s" $SCRATCH_DEV >$tmp.xfs_db
|
|||||||
echo "xfs_db for $SCRATCH_DEV" >>$seq.full
|
echo "xfs_db for $SCRATCH_DEV" >>$seq.full
|
||||||
cat $tmp.xfs_db >>$seq.full
|
cat $tmp.xfs_db >>$seq.full
|
||||||
|
|
||||||
|
eval `$XFS_IO_PROG -x -c resblks $SCRATCH_MNT 2>&1 \
|
||||||
|
| $AWK_PROG '/available/ { printf "resblks=%u\n", $5 }'`
|
||||||
|
echo "resblks gave: resblks=$resblks" >>$seq.full
|
||||||
|
|
||||||
# check the 'blocks' field from freesp command is OK
|
# check the 'blocks' field from freesp command is OK
|
||||||
# since 2.6.18, df does not report the 4 blocks per AG that cannot
|
# since 2.6.18, df does not report the 4 blocks per AG that cannot
|
||||||
# be allocated, hence we check for that exact mismatch.
|
# be allocated, hence we check for that exact mismatch.
|
||||||
|
# since ~2.6.22, reserved blocks are used by default and df does
|
||||||
|
# not report them, hence check for an exact mismatch.
|
||||||
perl -ne '
|
perl -ne '
|
||||||
BEGIN { $avail ='$avail' * 512;
|
BEGIN { $avail ='$avail' * 512;
|
||||||
$answer="(no xfs_db free blocks line?)" }
|
$answer="(no xfs_db free blocks line?)" }
|
||||||
/free blocks (\d+)$/ || next;
|
/free blocks (\d+)$/ || next;
|
||||||
$freesp = $1 * '$dbsize';
|
$freesp = $1 * '$dbsize';
|
||||||
if ($freesp == $avail) { $answer = "yes"; }
|
if ($freesp == $avail) {
|
||||||
else {
|
$answer = "yes";
|
||||||
|
} else {
|
||||||
$avail = $avail + (('$agcount' + 1) * '$dbsize' * 4);
|
$avail = $avail + (('$agcount' + 1) * '$dbsize' * 4);
|
||||||
if ($freesp == $avail) { $answer = "yes"; }
|
if ($freesp == $avail) {
|
||||||
else { $answer = "no ($freesp != $avail)"; }
|
$answer = "yes";
|
||||||
}
|
} else {
|
||||||
END { print "$answer\n" }
|
$avail = $avail + ('$resblks' * '$dbsize');
|
||||||
|
if ($freesp == $avail) {
|
||||||
|
$answer = "yes";
|
||||||
|
} else {
|
||||||
|
$answer = "no ($freesp != $avail)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
END { print "$answer\n" }
|
||||||
' <$tmp.xfs_db >$tmp.ans
|
' <$tmp.xfs_db >$tmp.ans
|
||||||
ans="`cat $tmp.ans`"
|
ans="`cat $tmp.ans`"
|
||||||
echo "Checking blocks column same as df: $ans"
|
echo "Checking blocks column same as df: $ans"
|
||||||
|
|||||||
Reference in New Issue
Block a user