From: boxi liu Date: Tue, 18 Jun 2013 15:20:46 +0000 (-0400) Subject: ext4: improve free space calculation for inline_data X-Git-Tag: next-20130619~97^2~4 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=17e710ac17eedec6b69dd1544f1ee7811a004611;p=karo-tx-linux.git ext4: improve free space calculation for inline_data In ext4 feature inline_data,it use the xattr's space to store the inline data in inode.When we calculate the inline data as the xattr,we add the pad.But in get_max_inline_xattr_value_size() function we count the free space without pad.It cause some contents are moved to a block even if it can be stored in the inode. Signed-off-by: liulei Signed-off-by: "Theodore Ts'o" Reviewed-by: Tao Ma --- diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 33331b4c2178..b8a07466144f 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -72,7 +72,7 @@ static int get_max_inline_xattr_value_size(struct inode *inode, entry = (struct ext4_xattr_entry *) ((void *)raw_inode + EXT4_I(inode)->i_inline_off); - free += le32_to_cpu(entry->e_value_size); + free += EXT4_XATTR_SIZE(le32_to_cpu(entry->e_value_size)); goto out; }