tests: add tests for directory entry blocks with checksum errors

Add some regression tests to examine how e2fsck handles directory
entry blocks and htree blocks with (a) malformed directory entries;
(b) incorrect checksums; or (c) obviously garbage entries.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
crypto
Darrick J. Wong 2014-08-02 23:48:58 -04:00 committed by Theodore Ts'o
parent f6204f9d86
commit 8e203507b3
8 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,62 @@
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Directory inode 12, block #0, offset 12: directory passes checks but fails checksum.
Fix? yes
Directory inode 13, block #0, offset 0: directory has no checksum.
Fix? yes
Directory inode 13, block #0, offset 1012: directory passes checks but fails checksum.
Fix? yes
Directory inode 14, block #0, offset 0: directory has no checksum.
Fix? yes
Directory inode 14, block #0, offset 12: directory passes checks but fails checksum.
Fix? yes
Directory inode 15, block #0, offset 0: directory has no checksum.
Fix? yes
Directory inode 15, block #0, offset 1000: directory corrupted
Salvage? yes
Directory inode 16, block #0, offset 0: directory has no checksum.
Fix? yes
Directory inode 16, block #0, offset 12: directory corrupted
Salvage? yes
Directory inode 17, block #0, offset 0: directory has no checksum.
Fix? yes
Directory inode 17, block #0, offset 0: directory corrupted
Salvage? yes
Missing '.' in directory inode 17.
Fix? yes
Setting filetype for entry '.' in ??? (17) to 2.
Missing '..' in directory inode 17.
Fix? yes
Setting filetype for entry '..' in ??? (17) to 2.
Entry 'file' in ??? (18) has invalid inode #: 4294967295.
Clear? yes
Pass 3: Checking directory connectivity
'..' in /6 (17) is <The NULL inode> (0), should be / (2).
Fix? yes
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Unattached inode 19
Connect to /lost+found? yes
Inode 19 ref count is 2, should be 1. Fix? yes
Pass 5: Checking group summary information
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
test_filesys: 19/128 files (5.3% non-contiguous), 1098/2048 blocks
Exit status is 1

View File

@ -0,0 +1,7 @@
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 19/128 files (5.3% non-contiguous), 1098/2048 blocks
Exit status is 0

Binary file not shown.

View File

@ -0,0 +1 @@
dir block w/ missing/bad csum, no tail, or dir block corruption (metadata_csum)

View File

@ -0,0 +1,28 @@
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Problem in HTREE directory inode 12: root node fails checksum.
Clear HTree index? yes
Problem in HTREE directory inode 18: root node fails checksum.
Clear HTree index? yes
Directory inode 24, block #0, offset 1020: directory corrupted
Salvage? yes
Problem in HTREE directory inode 24: root node fails checksum.
Clear HTree index? yes
Problem in HTREE directory inode 30: root node fails checksum.
Clear HTree index? yes
Problem in HTREE directory inode 36: root node fails checksum.
Clear HTree index? yes
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
test_filesys: 47/128 files (2.1% non-contiguous), 1108/2048 blocks
Exit status is 1

View File

@ -0,0 +1,7 @@
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
test_filesys: 47/128 files (2.1% non-contiguous), 1108/2048 blocks
Exit status is 0

Binary file not shown.

View File

@ -0,0 +1 @@
htree block w/ missing/bad csum, bad protective dirent, or htree index corruption (metadata_csum)