Patent ID: 7231409

Claim:
A method for tracking allocation of blocks in a file system, comprising: writing a first consistent and up-to-date version of the file system to disk at a first time, a consistent and up-to-date version of the file system being referred to as a checkpoint; writing a bit in a first copy of a bit map to a “not set” value of the bit to indicate that the block associated with the bit is freed (that is not allocated), and writing the bit to a “set” value to indicate that the block is allocated (quotation marks indicate a logical value of the bit), the first copy of the bit map is referred to as the current copy of the bit map; maintaining a second copy of the bit map, the second copy of the bit map indicating blocks which were allocated and blocks which were not allocated at the time that the checkpoint was written to disk, the second copy of the bit map referred to as the safe copy of the bit map; creating a third copy of the bit map which is authoritative in designating allocated blocks at a second time; writing a second checkpoint at the second time, and using the third copy of the bit map to record changes in blocks which are freed and blocks which are allocated while the second checkpoint is being written to disk.