This is the implementation for large EA support in ext4. Note that this also helps to have a larger number of EAs since large EAs get written out to a new inode instead of the EA block. If value of an attribute is greater than 1/2 the blocksize, the value is not saved in the external EA block, instead it is saved in an inode. The EA entry saves the inode number in e_value_inum field (earlier this was e_value_block that was unused). The EA inode has the same generation as the parent inode and the mtime of the EA inode is set to the inode number of the parent. A new EXT4_FEATURE_INCOMPAT_EA_INODE feature has been added for this. This "large_xattr" feature is not enabled automatically and needs to be enabled by mkfs or using tune2fs. Signed-off-by: Andreas Dilger Signed-off-by: Kalpak Shah ext4.h | 7 - xattr.c | 413 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- xattr.h | 11 + 3 files changed, 386 insertions(+), 45 deletions(-) Thanks, Kalpak