Re: [PATCH 29/54] e2fsck: Check extended attribute block checksums
From: Ted Ts'o <tytso@mit.edu>
Date: 2012-03-10 05:22:38
On Tue, Mar 06, 2012 at 04:00:32PM -0800, Darrick J. Wong wrote:
quoted hunk ↗ jump to hunk
diff --git a/e2fsck/problem.c b/e2fsck/problem.c index d910629..ad6887e 100644 --- a/e2fsck/problem.c +++ b/e2fsck/problem.c@@ -961,6 +961,21 @@ static struct e2fsck_problem problem_table[] = { "extent\n\t(logical @b %c, @n physical @b %b, len %N)\n"), PROMPT_FIX, 0 }, + /* Extended attribute block checksum for inode does not match. */ + { PR_1_EA_BLOCK_CSUM_INVALID, + N_("Extended attribute @a @b %b checksum for @i %i does not " + "match. "), + PROMPT_CLEAR, 0 }, + + /* + * Extended attribute block passes checks, but checksum for inode does + * not match. + */ + { PR_1_EA_BLOCK_CSUM_INVALID,
^^^^^^^^^^^^^^^^^^^^^^^^^^
This should be PR_1_EA_BLOCK_ONLY_CSUM_INVALID. This was discovered
again via the tst_problem unit test in the e2fsprogs regression test
suite:
LD_LIBRARY_PATH=../lib DYLD_LIBRARY_PATH=../lib ./tst_problem
*** Duplicate in problem table:
curr code = 0x0001006a: Extended attribute @a @b %b passes checks, but checksum for @i %i does not match.
*** prev code = 0x0001006a: Extended attribute @a @b %b checksum for @i %i does not match.
*** This is a fatal programming error in e2fsck
- Ted