Fwd: ext4_inode: i_block[] doubt

lakshmi pathi lakshmipathi.g at gmail.com
Wed Jan 13 09:05:14 UTC 2010


~~~~~~~~~~~~~~~~
I checked for ext4-users mailing list - but unable to find it and
posted this question to  ext4-beta-list at redhat.com - It's seems like
that mailing list is less active.So I'm posting it again to ext3 list
.
~~~~~~~~~~~~~~~~
I was accessing ext4 file using ext2fs lib (from
e2fsprogs-1.41.9-Fedora 12 ) ,while parsing inode contents I got these
output Let me know whether my assumptions are correct?

---------------
//code-part : print inode values
ext2fs_read_inode(current_fs,d->d_ino,&inode);
for ( i = 0; i < 15; i++)

printf ("\ni_block[%d] :%u", i, inode.i_block[i]);

---------------

In struct ext4_inode i_block[EXT4_N_BLOCKS], i_block[0] to i_block[2]
denotes extent headers and tells whether this inode uses Htree for
storing files data blocks.

//output
i_block[0] :324362
i_block[1] :4
i_block[2] :0

//remaining i_block[3] to i_block[14] holds four extents  in following format
//{extent index,number of blocks in extents,starting block number}
i_block[3] :0           // --> first extent denoted as 0
i_block[4] :1           // --> has single block
i_block[5] :36890       // --> block number is 36890
i_block[6] :1           // --> second extent denoted as 1
i_block[7] :2           // --> has two blocks
i_block[8] :36892       // --> it uses 36892 and 36893
i_block[9] :3           // --??--> third extent  -- why is it numbered
as 3 instead of 2?
i_block[10] :2          // --> has two blocks
i_block[11] :36898      // --> uses 36898 and 36899
i_block[12] :5          // --??--> fourth and finally extent -- again why its
comes as 5 instead of 3.
i_block[13] :11         // --> it uses 11 blocks
i_block[14] :38402      // --> starting block is 38402.

If my assumption are correct,the question is ,why i_block[9]  shows 3
instead of 2 and   i_block[12] says 5 instead of 3?

Thanks.

-- 
----
Cheers,
Lakshmipathi.G
www.giis.co.in




More information about the Ext3-users mailing list