Hey all -
One of the most common complaints I've heard about ReiserFS is how
graceless it is in handling critical I/O errors.
ext[23] can handle I/O errors anywhere, with the results being up to the
system admin to determine: continue, go read only, or panic.
ReiserFS doesn't offer the admin any such choice, instead panicking on
any I/O error in the journal.
I've posted four patches at:
ftp://ftp.suse.com/pub/people/jeffm/reiserfs/kernel-v2.6/io-error/
Against 2.6.9-rc2:
* reiserfs-cleanup-buffer-heads.diff
- Cleans up handling of buffer head bitfields - uses
the kernel supplied FNS_BUFFER macros instead.
* reiserfs-cleanup-sb-journal.diff
- Cleans up accessing of the journal structure, prefering
~ to create a temporary variable in functions that access
~ the journal structure non-trivially. Should make 0 difference
~ at compile time.
* reiserfs-write-lock.diff
- Fixes two missing reiserfs_write_unlock() calls on error paths
~ that are unrelated to the last patch.
* reiserfs-io-error-handling.diff
- Allows ReiserFS to gracefully handle I/O errors in critical
code paths. The admin has the option to go read-only or panic.
Since ReiserFS has no option to ignore the use of the journal,
~ the "continue" method is not enabled.
These patches have seen a lot of testing in the SuSE Linux Enterprise
Server 9 kernel, and are considered ready for mainline.
Hans - please take a look.
-Jeff
[Resent: The patches initially were attached, and I suspect they were
too large to make it onto the list.]
--
Jeff Mahoney
SuSE Labs