Patent ID: 7877554

Claim:
A system comprising: a storage pool comprising a first disk and a second disk; a data management unit (DMU); and a storage pool allocator (SPA) configured to: receive a first request from the DMU to write a first logical block, wherein the first logical block is a first indirect block comprising a first block pointer and a first checksum, wherein the first block pointer references a second logical block, wherein the first checksum is a checksum of the second logical block; allocate a first physical block on the first disk; attempt to write the first logical block to the first physical block; allocate a second physical block on the second disk, when the attempt to write the first logical block to the first physical block fails; write the first logical block to the second physical block when the attempt to write the first logical block to the first physical block fails; receive a second request from the DMU to write a third logical block, wherein the third logical block is a second indirect block comprising a second block pointer and a second checksum, wherein the second block pointer references the first logical block, wherein the second checksum is a checksum of the first logical block; allocate a third physical block on the first disk; and attempt to write the third logical block to the third physical block.