Thread (39 messages) 39 messages, 3 authors, 2011-12-12

Re: [PATCH 19/22] jbd2: Checksum revocation blocks

From: Ted Ts'o <tytso@mit.edu>
Date: 2011-12-12 15:39:40

On Mon, Nov 28, 2011 at 03:28:29PM -0800, Darrick J. Wong wrote:
+				/*
+				 * Ignoring corrupt revoke blocks is safe
+				 * because at worst it results in unnecessary
+				 * writes during recovery.
+				 */
This is *not* true.  The reason why we have revoke blocks is because
we have to handle the case where a metadata block (which is journaled)
is released, and then the block is reused as a data block.  If we then
replay the block, the "unnecessary write" will result the potential
corruption of a data block.

So if we lose a revoke block, it's not possible to safely replay *any*
part of the journal.  E2fsck might be able to do something about it by
saving the old copy of all blocks written during the journal replay if
it detects this case, and then alerting the system administrator that
a particular data file may have gotten corrupted.  But it's going to
be really messy...

						- Ted
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help