diff options
author | boxi liu <boxi10liu@gmail.com> | 2013-07-01 08:12:37 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-07-01 08:12:37 -0400 |
commit | c4932dbe63dae2d23b4f596caa5d286ebfe042cf (patch) | |
tree | 5fa02cc795112a45b20f4b5d279f70eb6834c9ba /fs/ext4 | |
parent | e7c96e8e47baf263d93a8dbbebca7216a912ca05 (diff) | |
download | linux-c4932dbe63dae2d23b4f596caa5d286ebfe042cf.tar.gz linux-c4932dbe63dae2d23b4f596caa5d286ebfe042cf.tar.bz2 linux-c4932dbe63dae2d23b4f596caa5d286ebfe042cf.zip |
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.c | 2 |
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; } |