>> allowing the ext4/e2fsck to verify the correct inode is accessed. > > Can we store the checksum of the xattr value somewhere? We already > checksum the values if they're stored in the ibody or a single external > block, and I'd hate to lose that protection. > > We could probably reuse one of the inode fields (i_version?) for this. > The crc32c value of the xattr data is currently stored in the xattr inode: struct ext4_xattr_ea_info { __le64 ref_count; /* number of xattr entry references */ __le32 hash; /* crc32c hash of xattr data */ __le32 reserved; /* reserved, must be 0 */ }; We could also save that value in the ext4_xattr_entry->e_value_offs for stronger binding between parent and xattr inodes. That field is currently set to 0 for xattr inode references.