SUSE has been an ardent supporter of the ReiserFS file system for more than half a decade. After the company's acquisition by Novell, that relationship continued. But of late SUSE saw several problems with ReiserFS. Mahoney in his email identifies several technical problems, as well as problems related to maintenance. The problem grew out of proportion ever since Hans Reiser, the main developer of the file system, relegated ReiserFS v3 to maintenance mode and would vehemently resist any proposals for change except for bug fixes.
Reiser has been pushing people to use ReiserFS v4 for several years now, but his call for including it in the Linux kernel fell on deaf ears. As a result, the only developers at SUSE working with ReiserFS v3 were Chris Mason, Jan Kara (internally), and Mahoney. A rotating member of Hans's team at his company, Namesys, also worked on the code. Mason has left Novell and moved to Oracle, and, as noted, Mahoney has expressed his desire to leave ReiserFS behind. "All of us have projects we're very much more interested in than working with ReiserFS," he says. "ReiserFS v3 is a dead end."
Technically, the road to adopting ReiserFS v4 wasn't a smooth one either. "Reiser4 is not an incremental update and requires a reformat, which is unreasonable for most people. I view Reiser4 as an interesting research file system, but that's about as far as it goes. I've been unimpressed with its stability so far. I don't know how advanced the recovery tools are yet, but I suspect that the complexity of the format and the ability to essentially define the format on the fly with plugins will make a useful fsck extremely difficult," Mahoney says.
The obvious choice then for replacing an "aging file system," Mahoney thinks, "is to switch to a proven one with a clear upgrade path. That file system is ext3." Since a majority of distributions use ext3 as their default file system, it has a much larger developer community to squash bugs than ReiserFS 3, where most fixes originate from either Mason or Mahoney.
Mahoney is impressed by ext3's recovery and debugging tools and explains that it has a clear upgrade path. "There is quite a bit of interest in the community in improving ext3, and ext4 is already under development. Like the upgrade path from ext2 to ext3, the path to ext4 is clearly defined. Existing file systems can be updated easily, and new files will be able to take advantage of the new features," Mahoney says.
But many were surprised by the timing of Novell's move. Coincidentally, the day Mahoney posted the proposal, Reiser's house was searched by the police in connection to the disappearance of his wife. Mahoney claims his proposal was posted several hours before the news concerning Reiser broke and the timing was purely coincidental.
On October 10, Reiser was arrested, based on circumstantial evidence linking him to his wife's disappearance.
Kevan Barney, senior manager of public relations for Linux and open source at Novell today insisted that Novell's plans were "certainly formulated well before this week's legal developments." Barney says the decision was made in accordance to the demand of their customers. "In response to customer demand, in the next versions of openSUSE (10.2) and SUSE Linux Enterprise (likely called version 11), Novell will be changing the default file system from ReiserFS 3 to ext3."
While this might seem like the end of the road for ReiserFS, Barney says that Novell will continue to support and improve ReiserFS v3. Word has also come from several individuals associated to Namesys, Hans's company, that work on the filesystem will continue.
Things will become clearer as the dust settles. Novell is expected to make additional information available about the filesystem changes to developers and users shortly. It remains to be seen whether Slackware, the only other major Linux distribution using ReiserFS as its default filesystem, will follow in Novell's footsteps. Also under the microscope is Linspire, which has been actively sponsoring ReiserFS development. Emails to both Slackware and Linspire failed to get a response.