A transactional file system wherein multiple file system operations may be performed as transaction. An application specifies that file system-related operations should be handled in a transaction, and is given a file handle associated with a transaction context. For file system requests associated with a transaction context, a file system component manages operations consistent with transactional behavior. The component provides data isolation by providing multiple file versions such that transactional readers do not receive changes until after the transaction commits and the reader reopens the file. The component handles namespace logging operations in a multiple-level log that facilitates logging and recovery. Page data is logged separate from the main log, with signatures establishing whether pages were fully flushed to disk. Namespace isolation via isolation directories allows a transaction to see its operational effects but not effects of other uncommitted transactions. Transactions over a network are facilitated.