Commit dd9d4a3a authored by Chao Yu's avatar Chao Yu Committed by Jaegeuk Kim

f2fs: clean up __find_inline_xattr() with __find_xattr()

Just cleanup, no logic change.
Signed-off-by: default avatarChao Yu <chao@kernel.org>
Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 645a3c40
...@@ -226,15 +226,18 @@ static inline const struct xattr_handler *f2fs_xattr_handler(int index) ...@@ -226,15 +226,18 @@ static inline const struct xattr_handler *f2fs_xattr_handler(int index)
} }
static struct f2fs_xattr_entry *__find_xattr(void *base_addr, static struct f2fs_xattr_entry *__find_xattr(void *base_addr,
void *last_base_addr, int index, void *last_base_addr, void **last_addr,
size_t len, const char *name) int index, size_t len, const char *name)
{ {
struct f2fs_xattr_entry *entry; struct f2fs_xattr_entry *entry;
list_for_each_xattr(entry, base_addr) { list_for_each_xattr(entry, base_addr) {
if ((void *)(entry) + sizeof(__u32) > last_base_addr || if ((void *)(entry) + sizeof(__u32) > last_base_addr ||
(void *)XATTR_NEXT_ENTRY(entry) > last_base_addr) (void *)XATTR_NEXT_ENTRY(entry) > last_base_addr) {
if (last_addr)
*last_addr = entry;
return NULL; return NULL;
}
if (entry->e_name_index != index) if (entry->e_name_index != index)
continue; continue;
...@@ -254,19 +257,9 @@ static struct f2fs_xattr_entry *__find_inline_xattr(struct inode *inode, ...@@ -254,19 +257,9 @@ static struct f2fs_xattr_entry *__find_inline_xattr(struct inode *inode,
unsigned int inline_size = inline_xattr_size(inode); unsigned int inline_size = inline_xattr_size(inode);
void *max_addr = base_addr + inline_size; void *max_addr = base_addr + inline_size;
list_for_each_xattr(entry, base_addr) { entry = __find_xattr(base_addr, max_addr, last_addr, index, len, name);
if ((void *)entry + sizeof(__u32) > max_addr || if (!entry)
(void *)XATTR_NEXT_ENTRY(entry) > max_addr) { return NULL;
*last_addr = entry;
return NULL;
}
if (entry->e_name_index != index)
continue;
if (entry->e_name_len != len)
continue;
if (!memcmp(entry->e_name, name, len))
break;
}
/* inline xattr header or entry across max inline xattr size */ /* inline xattr header or entry across max inline xattr size */
if (IS_XATTR_LAST_ENTRY(entry) && if (IS_XATTR_LAST_ENTRY(entry) &&
...@@ -368,7 +361,7 @@ static int lookup_all_xattrs(struct inode *inode, struct page *ipage, ...@@ -368,7 +361,7 @@ static int lookup_all_xattrs(struct inode *inode, struct page *ipage,
else else
cur_addr = txattr_addr; cur_addr = txattr_addr;
*xe = __find_xattr(cur_addr, last_txattr_addr, index, len, name); *xe = __find_xattr(cur_addr, last_txattr_addr, NULL, index, len, name);
if (!*xe) { if (!*xe) {
f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr", f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr",
inode->i_ino); inode->i_ino);
...@@ -659,7 +652,7 @@ static int __f2fs_setxattr(struct inode *inode, int index, ...@@ -659,7 +652,7 @@ static int __f2fs_setxattr(struct inode *inode, int index,
last_base_addr = (void *)base_addr + XATTR_SIZE(inode); last_base_addr = (void *)base_addr + XATTR_SIZE(inode);
/* find entry with wanted name. */ /* find entry with wanted name. */
here = __find_xattr(base_addr, last_base_addr, index, len, name); here = __find_xattr(base_addr, last_base_addr, NULL, index, len, name);
if (!here) { if (!here) {
f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr", f2fs_err(F2FS_I_SB(inode), "inode (%lu) has corrupted xattr",
inode->i_ino); inode->i_ino);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment