The authors of this paper have performed a Herculean task, categorizing more than 5,000 file system patches to the Linux 2.6 kernel from six different file systems (Btrfs, Ext3, Ext4, JFS, ReiserFS, and XFS). Each patch is assigned into categories for bug fixes, performance improvements, reliability enhancements, new features, and maintenance. These categories are further broken down into more detailed divisions. The resulting data is available online.
Using this data, the paper derives a number of findings that show strong similarities between file systems, such as the overall distribution of performance and reliability patches. Interestingly, they show that all file systems continue to have patches throughout the eight years of the study, regardless of their maturity level.
File system developers should read this paper to gain a better understanding of the life cycle of operational software and the common areas where most of these systems need detailed attention and improvement. It is interesting reading for any kernel or middleware developer.