commit 9ecfdfeaf6210f17b93f4130845a9349ab893196
Author: Duane Griffin <[EMAIL PROTECTED]>
Date: Thu Mar 20 02:45:05 2008 +0000
jbd2: correctly unescape journal data blocks
commit: d00256766a0b4f1441931a7f569a13edf6c68200
Fix a long-standing typo (predating git) that will cause data corruption if
a
journal data block needs unescaping. At the moment the wrong buffer head's
data is being unescaped.
To test this case mount a filesystem with data=journal, start creating and
deleting a bunch of files containing only JBD2_MAGIC_NUMBER (0xc03b3998),
then
pull the plug on the device. Without this patch the files will contain
zeros
instead of the correct data after recovery.
Signed-off-by: Duane Griffin <[EMAIL PROTECTED]>
Acked-by: Jan Kara <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
Signed-off-by: Chris Wright <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index d0ce627..fa0d4e9 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -488,7 +488,7 @@ static int do_one_pass(journal_t *journal,
memcpy(nbh->b_data, obh->b_data,
journal->j_blocksize);
if (flags & JBD2_FLAG_ESCAPE) {
- *((__be32 *)bh->b_data) =
+ *((__be32 *)nbh->b_data) =
cpu_to_be32(JBD2_MAGIC_NUMBER);
}
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs