tests: add regression tests for inodes with bad checksums

Add regression tests to e2fsck to examine how it deals with inode
table blocks which (a) have been zero'd; (b) have been one'd; (c) have
corrupt inodes with obvious problems; and (d) have inodes with
non-obvious problems.

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:51:31 -04:00 committed by Theodore Ts'o
parent f093caf15e
commit 1a27630fcf
4 changed files with 134 additions and 0 deletions

View File

@ -0,0 +1,126 @@
Pass 1: Checking inodes, blocks, and sizes
Inode 33 has a extra size (65535) which is invalid
Fix? yes
Inode 49 passes checks, but checksum does not match inode. Fix? yes
Inode 65 passes checks, but checksum does not match inode. Fix? yes
Inode 81 passes checks, but checksum does not match inode. Fix? yes
Inode 97 seems to contain garbage. Clear? yes
Inode 98 seems to contain garbage. Clear? yes
Inode 99 seems to contain garbage. Clear? yes
Inode 100 seems to contain garbage. Clear? yes
Inode 101 seems to contain garbage. Clear? yes
Inode 102 seems to contain garbage. Clear? yes
Inode 103 seems to contain garbage. Clear? yes
Inode 104 seems to contain garbage. Clear? yes
Inode 105 seems to contain garbage. Clear? yes
Inode 106 seems to contain garbage. Clear? yes
Inode 107 seems to contain garbage. Clear? yes
Inode 108 seems to contain garbage. Clear? yes
Inode 109 seems to contain garbage. Clear? yes
Inode 110 seems to contain garbage. Clear? yes
Inode 111 seems to contain garbage. Clear? yes
Inode 112 seems to contain garbage. Clear? yes
Pass 2: Checking directory structure
Extended attribute block for inode 49 (/38) is invalid (4294967295).
Clear? yes
Entry '86' in / (2) has deleted/unused inode 97. Clear? yes
Entry '87' in / (2) has deleted/unused inode 98. Clear? yes
Entry '88' in / (2) has deleted/unused inode 99. Clear? yes
Entry '89' in / (2) has deleted/unused inode 100. Clear? yes
Entry '90' in / (2) has deleted/unused inode 101. Clear? yes
Entry '91' in / (2) has deleted/unused inode 102. Clear? yes
Entry '92' in / (2) has deleted/unused inode 103. Clear? yes
Entry '93' in / (2) has deleted/unused inode 104. Clear? yes
Entry '94' in / (2) has deleted/unused inode 105. Clear? yes
Entry '95' in / (2) has deleted/unused inode 106. Clear? yes
Entry '96' in / (2) has deleted/unused inode 107. Clear? yes
Entry '97' in / (2) has deleted/unused inode 108. Clear? yes
Entry '98' in / (2) has deleted/unused inode 109. Clear? yes
Entry '99' in / (2) has deleted/unused inode 110. Clear? yes
Entry '100' in / (2) has deleted/unused inode 111. Clear? yes
Entry '101' in / (2) has deleted/unused inode 112. Clear? yes
Entry '102' in / (2) has deleted/unused inode 113. Clear? yes
Entry '103' in / (2) has deleted/unused inode 114. Clear? yes
Entry '104' in / (2) has deleted/unused inode 115. Clear? yes
Entry '105' in / (2) has deleted/unused inode 116. Clear? yes
Entry '106' in / (2) has deleted/unused inode 117. Clear? yes
Entry '107' in / (2) has deleted/unused inode 118. Clear? yes
Entry '108' in / (2) has deleted/unused inode 119. Clear? yes
Entry '109' in / (2) has deleted/unused inode 120. Clear? yes
Entry '110' in / (2) has deleted/unused inode 121. Clear? yes
Entry '111' in / (2) has deleted/unused inode 122. Clear? yes
Entry '112' in / (2) has deleted/unused inode 123. Clear? yes
Entry '113' in / (2) has deleted/unused inode 124. Clear? yes
Entry '114' in / (2) has deleted/unused inode 125. Clear? yes
Entry '115' in / (2) has deleted/unused inode 126. Clear? yes
Entry '116' in / (2) has deleted/unused inode 127. Clear? yes
Entry '117' in / (2) has deleted/unused inode 128. Clear? yes
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Inode bitmap differences: -(97--128)
Fix? yes
Free inodes count wrong for group #0 (0, counted=32).
Fix? yes
Free inodes count wrong (0, counted=32).
Fix? yes
test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
test_filesys: 96/128 files (0.0% non-contiguous), 18/512 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: 96/128 files (0.0% non-contiguous), 18/512 blocks
Exit status is 0

Binary file not shown.

View File

@ -0,0 +1 @@
inode table corruption (metadata_csum)