- if (xattr_ref->ea_size - EXT4_XATTR_SIZE(item->data_size) +
- EXT4_XATTR_SIZE(new_data_size) >
- ext4_xattr_inode_space(xattr_ref) +
- ext4_xattr_block_space(xattr_ref)) {
+ size_t old_data_size = item->data_size;
+ if ((xattr_ref->ea_size - EXT4_XATTR_SIZE(old_data_size) +
+ EXT4_XATTR_SIZE(new_data_size)
+ >
+ ext4_xattr_inode_space(xattr_ref) -
+ sizeof(struct ext4_xattr_ibody_header))
+ &&
+ (xattr_ref->ea_size - EXT4_XATTR_SIZE(old_data_size) +
+ EXT4_XATTR_SIZE(new_data_size)
+ >
+ ext4_xattr_block_space(xattr_ref) -
+ sizeof(struct ext4_xattr_header))) {