summaryrefslogtreecommitdiffstats
path: root/fs/ext4
diff options
context:
space:
mode:
authorboxi liu <boxi10liu@gmail.com>2013-07-01 08:12:37 -0400
committerTheodore Ts'o <tytso@mit.edu>2013-07-01 08:12:37 -0400
commitc4932dbe63dae2d23b4f596caa5d286ebfe042cf (patch)
tree5fa02cc795112a45b20f4b5d279f70eb6834c9ba /fs/ext4
parente7c96e8e47baf263d93a8dbbebca7216a912ca05 (diff)
downloadlinux-c4932dbe63dae2d23b4f596caa5d286ebfe042cf.tar.bz2
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 <lewis.liulei@huawei.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Reviewed-by: Tao Ma <boyu.mt@taobao.com>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/inline.c2
1 files changed, 1 insertions, 1 deletions
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;
}