e2fsprogs/tests/f_rebuild_csum_rootdir
Darrick J. Wong eb89a6287d e2fsck: write dir blocks after new inode when reconstructing root/lost+found
If we trash the root directory block, e2fsck will find inode 11 (the
old lost+found) and try to attach it to l+f.  The lost+found checker
also fails to find l+f and tries to add one to the root dir.  The root
dir is not found but is recreated with incorrect checksums, so linking
in the l+f dir fails and the l+f '..' entry isn't set.  Since both
dirs now fail checksum verification, they're both referred to rehash
to have that fixed, but because l+f doesn't have a '..' entry, rehash
crashes because l+f has < 2 entries.

On a checksumming filesystem, the routines in e2fsck that recreate
/lost+found and / must write the new directory block *after* the inode
has been written to disk because the checksum depends on i_generation.
Add a regression test while we're at it.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2014-07-26 17:14:40 -04:00
..
expect.1 e2fsck: write dir blocks after new inode when reconstructing root/lost+found 2014-07-26 17:14:40 -04:00
expect.2 e2fsck: write dir blocks after new inode when reconstructing root/lost+found 2014-07-26 17:14:40 -04:00
image.gz e2fsck: write dir blocks after new inode when reconstructing root/lost+found 2014-07-26 17:14:40 -04:00
name e2fsck: write dir blocks after new inode when reconstructing root/lost+found 2014-07-26 17:14:40 -04:00