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 <[email protected]>
---
fs/ext4/inline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
index c0fd1a1..87758ca 100644
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -71,7 +71,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;
}
--
On 05/26/2013 09:19 PM, boxi liu wrote:
> 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 <[email protected]>
Reviewed-by: Tao Ma <[email protected]>
Thanks,
Tao
> ---
> fs/ext4/inline.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
> index c0fd1a1..87758ca 100644
> --- a/fs/ext4/inline.c
> +++ b/fs/ext4/inline.c
> @@ -71,7 +71,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;
> }
>
> --
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
On Sun, May 26, 2013 at 09:40:41PM +0800, Tao Ma wrote:
> On 05/26/2013 09:19 PM, boxi liu wrote:
> > 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 <[email protected]>
> Reviewed-by: Tao Ma <[email protected]>
Applied, thanks.
- Ted