A method for storing a first block and a second block, the includes
storing the first block and the second block in a storage pool, and
storing a third block in the storage pool, wherein the third block
references the first block and second block and comprises a first fill
count and a second fill count, wherein the first fill count corresponds
to one selected from the group consisting of a number of data blocks
directly referenced by the first block, a number of data blocks
indirectly referenced by the first block, if the first block is an
indirect block, wherein the first fill count is one if the first block is
a data block.