This isn't really part of the core extent allocation facilities. Especially as this module grows, having it in its own place may come in handy.
In the form of extent2.h. The naming leaves something to be desired, but I'll leave that for a later diff.