I find the "performance" thing questionable:
I once rewrote "fsck" (*) to do things efficiently. Instead of
doing things as they pop up, the "queue" of things to do was sorted
by block number. The whole fsck would be done in 5 passes through the
queue. (So the head would only do about 5 passes from block 0 through
the higher numbers....)
The result was about 10 or 20 percent faster than the "default" fsck
that didn't do the ordering right. I gave up then....
Roger.
(*) minix fsck, on Minix....