Patent ID: 7921081
Filing Date: 2011-04-05
Classification: G06F

Abstract:
1. A method for managing a point in time snapshot of a file system stored within the space allocated to the file system, comprising: managing a point in time snapshot within the space allocated to a file system; tracking, for at least one block of the plurality of blocks of the file system not comprising the point in time snapshot, a separate entry in a snapshot map, within the space allocated to the file system, specifying a newly allocated bit marked if the at least one block is newly allocated following the creation of the point in time snapshot, a copied bit marked if the at least one block has been copied, a delete bit marked if the at least one block has been deleted, and specifying an addressed location of a snapshot copy of the at least one block if copied to the point in time snapshot, separately from tracking a mapping of an allocation state of each of said plurality of blocks of the file system; responsive to detecting the file system triggered to write or delete a particular block from among the at least one block of the file system, allowing the file system to write to or delete the particular block without making a snapshot copy of the particular block into the point in time snapshot if a particular entry for the particular block in the snapshot map specifies the particular block is at least one of newly allocated, copied and deleted as marked in the newly allocated bit, copied bit, and deleted bit for the particular entry; responsive to detecting the file system triggered to delete the particular block and at least one of the newly allocated bit, copied bit and deleted bit of the particular entry for the particular block in the snapshot map have not been marked at least one of newly allocated, copied and deleted, copying the particular block to a new addressed location, updating the particular entry for the particular block with the new addressed location, and marking the copied bit and the deleted bit for the particular entry as copied and deleted prior to allowing the file system to delete the particular block; responsive to detecting the file system triggered to delete the particular block and the newly allocated bit for the particular entry for the particular block in the snapshot map is marked newly allocated, clearing the newly allocated marking from the newly allocated bit for the particular entry prior to allowing the file system to delete the particular block; responsive to detecting the file system triggered to delete the particular block and at least one of the copied bit and the delete bit for the particular entry for the particular block in the snapshot map is marked at least one of copied and deleted, marking the copied bit and deleted bit for the particular entry as copied and deleted prior to allowing the file system to delete the particular block; and responsive to detecting the file system triggered to allocate the particular block from among the at least one block of the file system and at least one of the newly allocated bit, the copied bit, and the delete bit of the particular entry for the particular block in the snapshot map are marked at least one of newly allocated, copied, and deleted, marking the newly allocated bit for the particular entry as newly allocated and allowing the file system to allocate the particular block without making a snapshot copy of the particular block to the point in time snapshot.