A file system may selectively perform redundancy consistency recovery and
synchronization of mirrors and may store dirty file information in a log
or journal that indicates the modification of a file. A file system may
update saved dirty file information to indicate successful modification
of data across mirrors and may keep track of redundancy consistency
recovery information on a file-by-file basis or may track the redundancy
consistency of portions of files. A file system may also instruct an
underlying storage system not to track data modifications, possibly
selectively for each I/O request. During synchronization the file system
may synchronize its log and use saved dirty file information to determine
files to be synchronized. A file system may selectively use file system
logging for individual data modification requests and may expose an API
allowing applications to specify a redundancy consistency mechanism.