Name Suleiman Souhlal Email ssouhlal@vt.edu Project Title UFS Journaling Synopsis Add metadata journaling to the UFS filesystem. This will ensure that the filesystem metadata can be easily made consistent after an improper shutdown. Benefits To The Community Currently, in case of an improper shutdown, the hard drives have to be fsck'ed. While softupdates alleviate the problem, by permitting the disk to be used while fsck is running in the background, it is still a long process, and uses significant system resources. Adding metadata journaling and journal replay would permit to skip the fsck phase completely, by replaying the transactions that were not completely committed to disk when the crash happened. Deliverables Implement metadata journaling for the UFS filesystem. Project Details In order to implement UFS journaling, we will start by examining the work done by Scott Long (scottl@FreeBSD.org), which resides in the FreeBSD Perforce repository. After that, the first step will be to modify the vm/buffer cache so that buffers will not get flushed to disk when pinned. This will enable us to first write metadata buffers to the journal, and only once the disk reports that they have been committed to the journal can they be written to their actual location on disk. Once that is done, we will be able to implement the various journal operations: - Initialize the journal (which Scott has already implemented) - Destroy the journal, flushing the journal when umounting the filesystem - Start a transaction, assigning a journal handle for future operations - End a transaction, starting to write the whole transaction to disk - Write blocks, adding them to our transaction. Finally, we will identify the parts of the UFS filesystem that modify metadata, and we will change them so that they use our journal operations. This will probably be the most involved part, as the UFS code is fairly complex. Project Schedule I expect that at least two months will be needed to complete this project. Bio I am a Computer Science and Mathematics undergraduate student at Virginia Tech, expecting to graduate in July 2005. I am also a FreeBSD committer, officially working on the PowerPC port, but lately, I have been working on other areas of the kernel as well, including VFS and local filesystems.