lkml.org 
[lkml]   [2017]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] f2fs: enhance lookup xattr
    From
    Date
    Hi Jaegeuk,

    On 2017/1/29 11:58, Jaegeuk Kim wrote:
    > Hi Chao,
    >
    > On 01/24, Chao Yu wrote:
    >
    > ...
    >
    >>
    >> - error = read_all_xattrs(inode, ipage, &base_addr);
    >> + error = lookup_all_xattrs(inode, ipage, index, len, name,
    >> + &entry, &base_addr);
    >> if (error)
    >> return error;
    >>
    >> - entry = __find_xattr(base_addr, index, len, name);
    >> - if (IS_XATTR_LAST_ENTRY(entry)) {
    >> - error = -ENODATA;
    >> - goto cleanup;
    >> - }
    >> -
    >> - size = le16_to_cpu(entry->e_value_size);
    >> + size = __le16_to_cpu(entry->e_value_size);
    >
    > Looks good to me, except __le16_to_cpu() here.
    > Do we need to use this instead of le16_to_cpu()?

    Indeed, no needed. :)

    Thanks,

    >
    > Thanks,
    >
    >>
    >> if (buffer && size > buffer_size) {
    >> error = -ERANGE;
    >> - goto cleanup;
    >> + goto out;
    >> }
    >>
    >> + pval = entry->e_name + entry->e_name_len;
    >> +
    >> if (buffer) {
    >> char *pval = entry->e_name + entry->e_name_len;
    >> memcpy(buffer, pval, size);
    >> }
    >> error = size;
    >> -
    >> -cleanup:
    >> +out:
    >> kzfree(base_addr);
    >> return error;
    >> }
    >> diff --git a/fs/f2fs/xattr.h b/fs/f2fs/xattr.h
    >> index f990de20cdcd..d5a94928c116 100644
    >> --- a/fs/f2fs/xattr.h
    >> +++ b/fs/f2fs/xattr.h
    >> @@ -72,9 +72,10 @@ struct f2fs_xattr_entry {
    >> for (entry = XATTR_FIRST_ENTRY(addr);\
    >> !IS_XATTR_LAST_ENTRY(entry);\
    >> entry = XATTR_NEXT_ENTRY(entry))
    >> -
    >> -#define MIN_OFFSET(i) XATTR_ALIGN(inline_xattr_size(i) + PAGE_SIZE - \
    >> - sizeof(struct node_footer) - sizeof(__u32))
    >> +#define MAX_XATTR_BLOCK_SIZE (PAGE_SIZE - sizeof(struct node_footer))
    >> +#define VALID_XATTR_BLOCK_SIZE (MAX_XATTR_BLOCK_SIZE - sizeof(__u32))
    >> +#define MIN_OFFSET(i) XATTR_ALIGN(inline_xattr_size(i) + \
    >> + VALID_XATTR_BLOCK_SIZE)
    >>
    >> #define MAX_VALUE_LEN(i) (MIN_OFFSET(i) - \
    >> sizeof(struct f2fs_xattr_header) - \
    >> --
    >> 2.8.2.295.g3f1c1d0
    >
    > .
    >

    \
     
     \ /
      Last update: 2017-02-07 08:30    [W:4.959 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site