On Jun 19, 2007 13:45 +0530, Girish Shilamkar wrote: > On Tue, 2007-06-19 at 12:03 +0400, Alex Tomas wrote: > > say, at mount time we fund transaction logged. this means part of it can be > > on a disk. > > I am not sure I understand this completely. Still I hope the following > answers your question. I _think_ Alex is asking "what happens if during a transaction undergoing checkpoint of blocks to filesystem (not the last one in the journal) is interrupted by a crash and upon restart the partially-checkpointed transaction is found to have a checksum error?" > > what do we do if transaction in the journal is found with wrong > > checksum? leave partial transaction in-place? > > The sanity of the transaction is checked in PASS_SCAN. And if checksum > is found to be incorrect for nth transaction then last transaction which > is written to disk is (n - 1). The recovery.c code (AFAIK) does not do replay for any transaction that does not have a valid checksum, or transactions beyond that. If the bad transaction had already started chekpoint (i.e. isn't the last committed transaction) then the journal _should_ return an error up to the filesystem, so it can call ext4_error() at startup. For e2fsck (which normally does journal replay & recovery) it can do a full filesystem check at this point. Cheers, Andreas -- Andreas Dilger Principal Software Engineer Cluster File Systems, Inc. - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html