The only use of blist_fill is one that uses it to allocate all the free blocks at once. This can be implemented trivially, and quickly, by accessing only the root node. Define blist_alloc_all to do that, and discard blist_fill. Use blist_alloc_all in place of blist_fill.
Unit Tests Skipped