[PATCH v2 12/31] ocfs2: abstract the inline data i_size bound check

From: Joseph Qi

Date: Fri Nov 06 2026 - 06:16:33 EST


Fold the i_size against id_count test into a predicate, completing the
inline-data group.

No functional change intended.

Signed-off-by: Joseph Qi <joseph.qi@xxxxxxxxxxxxxxxxx>
---
fs/ocfs2/inode.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
index 259f44661f37..8e867f6f394a 100644
--- a/fs/ocfs2/inode.c
+++ b/fs/ocfs2/inode.c
@@ -187,6 +187,11 @@ static bool ocfs2_dinode_has_oversized_inline_data(struct super_block *sb,
ocfs2_max_inline_data_with_xattr(sb, di);
}

+static bool ocfs2_dinode_has_inline_size_over_count(struct ocfs2_dinode *di)
+{
+ return le64_to_cpu(di->i_size) > le16_to_cpu(di->id2.i_data.id_count);
+}
+
void ocfs2_set_inode_flags(struct inode *inode)
{
unsigned int flags = OCFS2_I(inode)->ip_attr;
@@ -1769,7 +1774,7 @@ int ocfs2_validate_inode_block(struct super_block *sb,
goto bail;
}

- if (le64_to_cpu(di->i_size) > le16_to_cpu(data->id_count)) {
+ if (ocfs2_dinode_has_inline_size_over_count(di)) {
rc = ocfs2_error(sb,
"Invalid dinode #%llu: inline data i_size %llu exceeds id_count %u\n",
(unsigned long long)bh->b_blocknr,
--
2.39.3