2004-09-14 15:43:09

by Jeff Mahoney

[permalink] [raw]
Subject: [PATCH] ReiserFS v3 I/O error handling

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBRxC3LPWxlyuTD7IRAmyYAJ4t2zN0ZnGMWp4FV8CIVQYVcuOhqACfdMlJ
rSdILv0XFfcWh7lyCbQPyAY=
=iTX3
-----END PGP SIGNATURE-----


2004-09-15 01:26:37

by Hans Reiser

[permalink] [raw]
Subject: Re: [PATCH] ReiserFS v3 I/O error handling

Jeff Mahoney wrote:

> 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