• Alex Tomas's avatar
    [PATCH] ext3: support for EA in inode · 78085a46
    Alex Tomas authored
    1) intent of the patch is to get possibility to store EAs in the body of large
       inode. it saves space and improves performance in some cases
    
    2) the patch is quite simple: it works the same way original xattr does, but
       using other storage (inode body). body has priority over separate block.
       original routines (ext3_xattr_get, ext3_xattr_list, ext3_xattr_set) are
       renamed to ext3_xattr_block_*. new routines that handle inode storate are
       added (ext3_xattr_ibody_get, ext3_xattr_ibody_list, ext3_xattr_ibody_set).
       routines ext3_xattr_get, ext3_xattr_list and ext3_xattr_set allow user to
       accesss both the storages transparently
    
    3) the change makes sense on filesystem with inode size >= 256 bytes only.
       2.4 kernels don't support such a filesystems, AFAIK. 2.6 kernels do support
       and ignore EAs stored in a body w/o the patch
    
    4) debugfs and e2fsck need to be patched to deal with EAs in inode
       the patch will be sent later
    
    5) testing results:
    	a) Andrew Samba Master (tridge) has done successful tests
    	b) we've been using ea-in-inode feature in Lustre for many months
    Signed-off-by: default avatarAndreas Dilger <adilger@clusterfs.com>
    Signed-off-by: default avatarAlex Tomas <alex@clusterfs.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    78085a46
xattr.h 3.76 KB