This is the full btree unficiation based on Dave's initial patches plus
various cleanups. This second versions post now contains the complete
btree refactoring, and passes XFSQA.
The two first patches from the first round have been merged, so they are
not included anymore. In the reposted patches not much has changed,
only the readahead helpers have been renamed and the tracing infrastructure
has been improved a little.
The real news is the missing btree operations, including all the hairy
ones. These have been reimplemented looking at the three original
btrees and Daves code, in doubt going with the former. That means the
small helpers to insert/remove/move records are gone now in favour of
following the original code more closely. This fixed the one off error
showing up in the intial refactoring.
There's a lot of new comments and empty lines, so by diffstat the new
code isn't all that much smaller:
36 files changed, 6041 insertions(+), 7128 deletions(-)
but the (debug) binary modules is almost 15kb smaller:
text data bss dec hex filename
631577 4227 3092 638896 9bfb0 fs/xfs/xfs.ko.old
616929 4435 3124 624488 98768 fs/xfs/xfs.ko.btree
I have not run any benchmarks yet to see what the performance impact is,
and I still have some ideas to optimize the code.