Re: [BUG] fs/jbd/checkpoint.c:427: "blocknr != 0"

From: Franz Pletz
Date: Tue Jul 27 2004 - 18:44:09 EST


Andrew Morton wrote:
I assume you have a wrecked journal, which is triggering this assert:

} else {
first_tid = journal->j_transaction_sequence;
blocknr = journal->j_head;
}
spin_unlock(&journal->j_list_lock);
J_ASSERT(blocknr != 0);

/* If the oldest pinned transaction is at the tail of the log
already then there's not much we can do right now. */

e2fsck should have fixed this up when doing its journal replay.

You could probably get your data back by temporarily removing the journal:

tune2fs -O ^has_journal /dev/hda1
e2fsck -f /dev/hda1
tune2fs -j /dev/hda1
e2fsck -f /dev/hda1

That solved the problem. Thank you very much.

I've read the tune2fs manpage in order to rebuild the journal in some way. But as I didn't want to destroy my data, I didn't dare to do something unless I am really sure what I'm doing.

I can't track that error down to a specific issue because the machine didn't lock up or something similar. I just shut it down and got that message when booting it the other day.


Franz
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/