Well, there was some corruption in ext3 if you used it over MD RAID with
data=journal mode that was discussed recently on ext3-users. There was
a patch posted by Neil Brown which I resend here (full thread archived
at https://listman.redhat.com/pipermail/ext3-users/).
According to Stephen Tweedie, the patch will not correctly handle
filesystems with 1kB or 2kB block sizes, but those are rare these days
(only 1kB blocks are created by default for small filesystems, < 500MB
in size).
This may or may not fix your problem (don't know the details), but it
can't hurt to try. It definitely is not a "/dev/hda stopped responding"
kind of fix, but it _is_ a "weird corruption with ext3 and MD RAID" kind
of fix.
Cheers, Andreas
============================================================================
--- ./fs/jbd/commit.c 2002/05/28 04:15:18 1.1
+++ ./fs/jbd/commit.c 2002/05/28 22:44:48
@@ -663,12 +663,13 @@
* there's no point in keeping a checkpoint record for
* it. */
bh = jh2bh(jh);
- if (buffer_jdirty(bh)) {
+ if (buffer_jdirty(bh) && !__buffer_state(bh, Freed)) {
JBUFFER_TRACE(jh, "add to new checkpointing trans");
__journal_insert_checkpoint(jh, commit_transaction);
JBUFFER_TRACE(jh, "refile for checkpoint writeback");
__journal_refile_buffer(jh);
} else {
+ clear_bit(BH_Freed, &bh->b_state);
J_ASSERT_BH(bh, !buffer_dirty(bh));
J_ASSERT_JH(jh, jh->b_next_transaction == NULL);
__journal_unfile_buffer(jh);
--- ./fs/jbd/transaction.c 2002/05/26 23:13:05 1.2
+++ ./fs/jbd/transaction.c 2002/05/28 09:24:45
@@ -1834,6 +1834,7 @@
* running transaction if that is set, but nothing
* else. */
JBUFFER_TRACE(jh, "on committing transaction");
+ set_bit(BH_Freed, &bh->b_state);
if (jh->b_next_transaction) {
J_ASSERT(jh->b_next_transaction ==
journal->j_running_transaction);
_______________________________________________
Ext3-users mailing list
Ext3-users@redhat.com
https://listman.redhat.com/mailman/listinfo/ext3-users
-- Andreas Dilger http://www-mddsp.enel.ucalgary.ca/People/adilger/ http://sourceforge.net/projects/ext2resize/- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/