mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-07 01:45:18 +02:00
UPSTREAM: f2fs: clean up data_blkaddr() and get_dnode_addr()
Introudce a new help get_dnode_base() to wrap common code from
get_dnode_addr() and data_blkaddr() for cleanup.
Change-Id: Id87f591d9624c26bf958b80e3adf0371b08a6824
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 2cf66b9de4
)
This commit is contained in:
parent
8474472108
commit
58c6526f60
|
@ -2899,26 +2899,27 @@ static inline __le32 *blkaddr_in_node(struct f2fs_node *node)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline int f2fs_has_extra_attr(struct inode *inode);
|
static inline int f2fs_has_extra_attr(struct inode *inode);
|
||||||
|
static inline unsigned int get_dnode_base(struct inode *inode,
|
||||||
|
struct page *node_page)
|
||||||
|
{
|
||||||
|
if (!IS_INODE(node_page))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return inode ? get_extra_isize(inode) :
|
||||||
|
offset_in_addr(&F2FS_NODE(node_page)->i);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline __le32 *get_dnode_addr(struct inode *inode,
|
||||||
|
struct page *node_page)
|
||||||
|
{
|
||||||
|
return blkaddr_in_node(F2FS_NODE(node_page)) +
|
||||||
|
get_dnode_base(inode, node_page);
|
||||||
|
}
|
||||||
|
|
||||||
static inline block_t data_blkaddr(struct inode *inode,
|
static inline block_t data_blkaddr(struct inode *inode,
|
||||||
struct page *node_page, unsigned int offset)
|
struct page *node_page, unsigned int offset)
|
||||||
{
|
{
|
||||||
struct f2fs_node *raw_node;
|
return le32_to_cpu(*(get_dnode_addr(inode, node_page) + offset));
|
||||||
__le32 *addr_array;
|
|
||||||
int base = 0;
|
|
||||||
bool is_inode = IS_INODE(node_page);
|
|
||||||
|
|
||||||
raw_node = F2FS_NODE(node_page);
|
|
||||||
|
|
||||||
if (is_inode) {
|
|
||||||
if (!inode)
|
|
||||||
/* from GC path only */
|
|
||||||
base = offset_in_addr(&raw_node->i);
|
|
||||||
else if (f2fs_has_extra_attr(inode))
|
|
||||||
base = get_extra_isize(inode);
|
|
||||||
}
|
|
||||||
|
|
||||||
addr_array = blkaddr_in_node(raw_node);
|
|
||||||
return le32_to_cpu(addr_array[base + offset]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline block_t f2fs_data_blkaddr(struct dnode_of_data *dn)
|
static inline block_t f2fs_data_blkaddr(struct dnode_of_data *dn)
|
||||||
|
@ -3291,8 +3292,6 @@ static inline bool f2fs_is_cow_file(struct inode *inode)
|
||||||
return is_inode_flag_set(inode, FI_COW_FILE);
|
return is_inode_flag_set(inode, FI_COW_FILE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline __le32 *get_dnode_addr(struct inode *inode,
|
|
||||||
struct page *node_page);
|
|
||||||
static inline void *inline_data_addr(struct inode *inode, struct page *page)
|
static inline void *inline_data_addr(struct inode *inode, struct page *page)
|
||||||
{
|
{
|
||||||
__le32 *addr = get_dnode_addr(inode, page);
|
__le32 *addr = get_dnode_addr(inode, page);
|
||||||
|
@ -3440,17 +3439,6 @@ static inline int get_inline_xattr_addrs(struct inode *inode)
|
||||||
return F2FS_I(inode)->i_inline_xattr_size;
|
return F2FS_I(inode)->i_inline_xattr_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline __le32 *get_dnode_addr(struct inode *inode,
|
|
||||||
struct page *node_page)
|
|
||||||
{
|
|
||||||
int base = 0;
|
|
||||||
|
|
||||||
if (IS_INODE(node_page) && f2fs_has_extra_attr(inode))
|
|
||||||
base = get_extra_isize(inode);
|
|
||||||
|
|
||||||
return blkaddr_in_node(F2FS_NODE(node_page)) + base;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define f2fs_get_inode_mode(i) \
|
#define f2fs_get_inode_mode(i) \
|
||||||
((is_inode_flag_set(i, FI_ACL_MODE)) ? \
|
((is_inode_flag_set(i, FI_ACL_MODE)) ? \
|
||||||
(F2FS_I(i)->i_acl_mode) : ((i)->i_mode))
|
(F2FS_I(i)->i_acl_mode) : ((i)->i_mode))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user