Patent ID: 7873601

Claim:
A method for performing a backup, comprising: using a processor to determine a changed portion of a file system tree that has changed since a time a prior block based backup of the file system tree was performed, including by: obtaining a list of one or more blocks, including any file system metadata blocks and any data blocks, that have changed since the prior block based backup was performed, including by recording one or more changes to blocks on media associated with a device being backed up by monitoring commands passed to a media driver since the time the prior block based backup of the file system tree was performed; determining which of the blocks in the list were identified during some prior backup as file system metadata blocks used by a file system to track file system objects and file system structure; obtaining inode numbers for those blocks in the list identified as file system metadata blocks during some prior backup; and determining, based at least in part on the obtained inode numbers, the changed portion of the file system tree; obtaining incremental metadata associated with the determined changed portion of the file system tree including by obtaining file system metadata used by the file system to track file system objects and file system structure, wherein there is at least some file system metadata associated with an unchanged portion of the file system tree that is not obtained when obtaining the incremental metadata; storing the obtained incremental metadata, wherein there is at least some file system metadata associated with the unchanged portion of the file system tree that is not stored when storing the obtained incremental metadata; and determining whether to store incremental metadata based at least in part on a percentage of the file system tree that has changed, wherein: it is determined to not to store incremental metadata in the event a relatively large percentage of the file system tree has changed and it is determined to store incremental metadata in the event a relatively small percentage of the file system tree has changed; in the event it is determined to store incremental metadata, obtaining and storing incremental metadata are performed; and in the event it is determined not to store incremental metadata, file system metadata for the entire file system tree is obtained and stored.