Extent List

We keep the extents (not nescessarily sorted) in the extents array. For faster searches, index keeps an index into extents in an AVL tree. In addition to the extents themselves, some bookkeeping members are added. The most important is the timestamp member, used to make sure no handle in its list gets reused before it should. __size is only used internally, keeping track of how big extents is.

struct extentlist {
	int64_t __size;
	int64_t num_extents;
	int64_t num_handles;
	struct timeval timestamp;
	struct extent * extents;
};