2011/7/2 Mulyadi Santosa <mulyadi.santosa@xxxxxxxxx>: > Hi Joao! :) > > 2011/7/2 João Eduardo Luís <jecluis@xxxxxxxxx>: >> Hello. >> >> Nice post. I had never noticed that. And I am able to reproduce the ls-stat behavior on a debian box with ext4 fs and no SELinux, or any other ACL's whatsoever. > > OK, so far I can conclude it's not 100% reproducible on every > case...and it looks it is indeed due to enabled ACL and/or > SELinux...hmmmmmm > > >> You state: >> >>> But my friend pointed that stat was accouting extra blocks that might (I say "might" because my friend is not so sure) contain metadata such as SELinux and ACL. Hi, After reading a bit of ext3 code, I'm now fairly sure the blocks allocated for extended attributes are counted as i_blocks (which stat returns) for an inode. Extented attributes for an inode can either reside in the inode or can at max span 1 filesystem block{size.}. The extra allocated block number for the inode is stored in i_file_acl field of the inode. As an example, kernel has various code paths which given a symlink tries to determine whether the symlink is a fast or a slow one. "fast" means the path is less than 64 bytes long and resides in inode itself while slow means the path exists in a block and the block needs to be loaded to resolve the symlink. So for fast symlinks i_blocks should be 0 for an inode. Now have a look at the code which determines whether the symlink is fast or slow. /* * Test whether an inode is a fast symlink. */ static int ext3_inode_is_fast_symlink(struct inode *inode) { int ea_blocks = EXT3_I(inode)->i_file_acl ? (inode->i_sb->s_blocksize >> 9) : 0; return (S_ISLNK(inode->i_mode) && inode->i_blocks - ea_blocks == 0); } Further reading revealed that we do allocate a new block for inode when we set xattrs. static int ext3_xattr_block_set() { .......... ext3_new_block(); ..... } So, I think if you have extended attributes which reside in an external block, it will be counted in i_blocks. -- Thanks - Manish _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies