|| ||Jeffrey Mahoney <firstname.lastname@example.org>|
|| ||ReiserFS Mailing List <email@example.com>|
|| ||[PATCH 00/05] reiserfs: enhanced error reporting|
|| ||Fri, 16 Jun 2006 00:16:50 -0400|
One of the long-term shortcomings of reiserfs has been the lack of
extended error handling. There are many conditions where the file system
is obviously corrupted, yet writing is still allowed. This only serves
to potentially introduce even more corruption. There are other cases
where reiserfs_panic() is called directly when there is really no need
to take down the system.
The following patches lay some of the groundwork to enhance the error
handling capabilities of reiserfs:
Currently, the output format for infos/warnings/errors/panics varies
depending on which one is used. This patch makes them more consistent
internally and with other Linux file systems. The third patch in the
series builds on this to make more consistent warnings/errors/etc.
In several places, reiserfs_warning() is used to inform the user of
something that would be better qualified as a notice. This patch adds
a reiserfs_info() routine for use in such cases.
Hans has stated on multiple occasions that he wants unique identifiers
associated with all warnings. These identifiers aren't always used.
In some cases, function names are included. In other cases, not.
Sometimes the device is included explicitly, in others, not. This
patch adds identifiers where they're missing (or "" in the rare case
where the message is routine enough to not warrant one), removes
function names and device names when they're provided, since patch 1
added them to every warning.
This adds a reiserfs_error() function akin to ext3_error() that takes
the file system to a read only state when an error occurs where the
file system is corrupted. In such cases, more damage would be done by
allowing writes to continue.
This patch modifies some error paths to use reiserfs_error() instead
of reiserfs_warning() or reiserfs_panic(). This is to be viewed as
the first in a series of patches. I just chose the ones that seemed
obvious as a first step.
I'm not putting these up for inclusion until I'm satisfied they're
stable, but I'd like some feedback. I know there's been a lot of
interest in enhancing the error handling capabilities, so hopefully
these will be welcome. :)