Ok, I was able to replicate it, and created a small test case (see attached), but it turns out your patch wasn't sufficient. It didn't actually fix the problem correctly, and left the file system in a corrupted state, which was seen when we ran e2fsck a second time and the i_blocks field was not correctly. Your patch also resulted in blocks within a logical cluster incorrectly assigned to two physical clusters. (I still need to add some code in e2fsck to notice this particular corruption, but it's highly unlikely for this to happen due to hardware errors --- just kernel/e2fsck bugs.) I'll attach to this mail thread the patches I used to fix this, plus the test case. - Ted
Attachment:
image.gz
Description: Binary data