A method for allocating space on a disk involving receiving a request to
allocate space on the disk having a first size, determining whether
contiguous space of the first size exists on the disk. If contiguous
space of the first size exists on the disk, allocating the contiguous
space on the disk to obtain a contiguous space address, and responding to
the request to allocate space on disk with a contiguous space pointer. If
no contiguous space of the first size exists on the disk, allocating a
gang block header, populating the gang block header, and responding to
the request to allocate space on the disk with a gang block header
pointer.