Bug 12533

Summary: with extents, ext4 block count wrong
Product: File System Reporter: Markus Peloquin (markus)
Component: ext4Assignee: fs_ext4 (fs_ext4)
Status: REJECTED INVALID    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.28 Subsystem:
Regression: --- Bisected commit-id:

Description Markus Peloquin 2009-01-24 01:18:52 UTC
Latest working kernel version: 2.6.28
Earliest failing kernel version: 2.6.28
Distribution: Gentoo
Hardware Environment: i686
Block size: 4096

I'm trying to recover from a massive data loss with ext4 (root directory erased), so I'm looking at lots of hexedit output.  Here's one thing that looks quite wrong:

ED 41 E8 03  00 10 00 00  16 81 73 49  16 81 73 49
16 81 73 49  00 00 00 00  E8 03 03 00  08 00 00 00
00 00 08 00  02 00 00 00  0A F3 01 00  04 00 00 00
00 00 00 00  00 00 00 00  01 00 00 00  3E 17 13 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00
00 00 00 00  61 27 09 0B  00 00 00 00  00 00 00 00
00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00

The 4 in the second byte indicates this is a directory.  The second word says the file size is 4096 bytes, the same as the block size.  The eight word says there are eight blocks.  Last, the extent header has one extent (second half of the 11th word), and this one extent has a block count of 1 (first half of 15th word).

The directory contains a single directory.
Comment 1 Markus Peloquin 2009-01-24 19:48:36 UTC
never mind.  This is probably the way it's supposed to be.
Comment 2 Theodore Tso 2009-01-24 21:38:12 UTC
Yup.   I suggest that you use debugfs, and that you look at some valid filesystems before you start filing more bugs in the future....