Hi Kinglong,

On 03/18, Kinglong Mee wrote:
> It's better coping all valid xattr data includes the last zero. 

Why do we need this?

The size of txattr_addr would be larger than the space we need.

Thanks,

> 
> Signed-off-by: Kinglong Mee <kinglong...@gmail.com>
> ---
>  fs/f2fs/xattr.c | 4 ++--
>  fs/f2fs/xattr.h | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/f2fs/xattr.c b/fs/f2fs/xattr.c
> index aff7619..41785c9 100644
> --- a/fs/f2fs/xattr.c
> +++ b/fs/f2fs/xattr.c
> @@ -249,7 +249,7 @@ static int lookup_all_xattrs(struct inode *inode, struct 
> page *ipage,
>       struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
>       void *cur_addr, *txattr_addr, *last_addr = NULL;
>       nid_t xnid = F2FS_I(inode)->i_xattr_nid;
> -     unsigned int size = xnid ? VALID_XATTR_BLOCK_SIZE : 0;
> +     unsigned int size = xnid ? MAX_XATTR_BLOCK_SIZE : 0;
>       unsigned int inline_size = 0;
>       int err = 0;
>  
> @@ -328,7 +328,7 @@ static int read_all_xattrs(struct inode *inode, struct 
> page *ipage,
>  {
>       struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
>       struct f2fs_xattr_header *header;
> -     size_t size = PAGE_SIZE, inline_size = 0;
> +     size_t size = MAX_XATTR_BLOCK_SIZE, inline_size = 0;
>       void *txattr_addr;
>       int err;
>  
> diff --git a/fs/f2fs/xattr.h b/fs/f2fs/xattr.h
> index d5a9492..629c8ae 100644
> --- a/fs/f2fs/xattr.h
> +++ b/fs/f2fs/xattr.h
> @@ -73,9 +73,9 @@ struct f2fs_xattr_entry {
>                               !IS_XATTR_LAST_ENTRY(entry);\
>                               entry = XATTR_NEXT_ENTRY(entry))
>  #define MAX_XATTR_BLOCK_SIZE (PAGE_SIZE - sizeof(struct node_footer))
> -#define VALID_XATTR_BLOCK_SIZE       (MAX_XATTR_BLOCK_SIZE - sizeof(__u32))
> +/* A __u32 is reserved for the last entry as zero */
>  #define MIN_OFFSET(i)                XATTR_ALIGN(inline_xattr_size(i) +      
> \
> -                                             VALID_XATTR_BLOCK_SIZE)
> +                             MAX_XATTR_BLOCK_SIZE - sizeof(__u32))
>  
>  #define MAX_VALUE_LEN(i)     (MIN_OFFSET(i) -                        \
>                               sizeof(struct f2fs_xattr_header) -      \
> -- 
> 2.9.3

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to