f2fs: introduce F2FS_INODE macro to get f2fs_inode
This patch introduces F2FS_INODE that returns struct f2fs_inode * from the inode page. By using this macro, we can remove unnecessary casting codes like below. struct f2fs_inode *ri = &F2FS_NODE(inode_page)->i; -> struct f2fs_inode *ri = F2FS_INODE(inode_page); Reviewed-by: Chao Yu <chao2.yu@samsung.com> Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
@@ -684,7 +684,7 @@ int truncate_inode_blocks(struct inode *inode, pgoff_t from)
|
||||
int err = 0, cont = 1;
|
||||
int level, offset[4], noffset[4];
|
||||
unsigned int nofs = 0;
|
||||
struct f2fs_node *rn;
|
||||
struct f2fs_inode *ri;
|
||||
struct dnode_of_data dn;
|
||||
struct page *page;
|
||||
|
||||
@@ -701,7 +701,7 @@ restart:
|
||||
set_new_dnode(&dn, inode, page, NULL, 0);
|
||||
unlock_page(page);
|
||||
|
||||
rn = F2FS_NODE(page);
|
||||
ri = F2FS_INODE(page);
|
||||
switch (level) {
|
||||
case 0:
|
||||
case 1:
|
||||
@@ -711,7 +711,7 @@ restart:
|
||||
nofs = noffset[1];
|
||||
if (!offset[level - 1])
|
||||
goto skip_partial;
|
||||
err = truncate_partial_nodes(&dn, &rn->i, offset, level);
|
||||
err = truncate_partial_nodes(&dn, ri, offset, level);
|
||||
if (err < 0 && err != -ENOENT)
|
||||
goto fail;
|
||||
nofs += 1 + NIDS_PER_BLOCK;
|
||||
@@ -720,7 +720,7 @@ restart:
|
||||
nofs = 5 + 2 * NIDS_PER_BLOCK;
|
||||
if (!offset[level - 1])
|
||||
goto skip_partial;
|
||||
err = truncate_partial_nodes(&dn, &rn->i, offset, level);
|
||||
err = truncate_partial_nodes(&dn, ri, offset, level);
|
||||
if (err < 0 && err != -ENOENT)
|
||||
goto fail;
|
||||
break;
|
||||
@@ -730,7 +730,7 @@ restart:
|
||||
|
||||
skip_partial:
|
||||
while (cont) {
|
||||
dn.nid = le32_to_cpu(rn->i.i_nid[offset[0] - NODE_DIR1_BLOCK]);
|
||||
dn.nid = le32_to_cpu(ri->i_nid[offset[0] - NODE_DIR1_BLOCK]);
|
||||
switch (offset[0]) {
|
||||
case NODE_DIR1_BLOCK:
|
||||
case NODE_DIR2_BLOCK:
|
||||
@@ -753,14 +753,14 @@ skip_partial:
|
||||
if (err < 0 && err != -ENOENT)
|
||||
goto fail;
|
||||
if (offset[1] == 0 &&
|
||||
rn->i.i_nid[offset[0] - NODE_DIR1_BLOCK]) {
|
||||
ri->i_nid[offset[0] - NODE_DIR1_BLOCK]) {
|
||||
lock_page(page);
|
||||
if (unlikely(page->mapping != node_mapping)) {
|
||||
f2fs_put_page(page, 1);
|
||||
goto restart;
|
||||
}
|
||||
wait_on_page_writeback(page);
|
||||
rn->i.i_nid[offset[0] - NODE_DIR1_BLOCK] = 0;
|
||||
ri->i_nid[offset[0] - NODE_DIR1_BLOCK] = 0;
|
||||
set_page_dirty(page);
|
||||
unlock_page(page);
|
||||
}
|
||||
@@ -1533,7 +1533,7 @@ void recover_node_page(struct f2fs_sb_info *sbi, struct page *page,
|
||||
int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
|
||||
{
|
||||
struct address_space *mapping = sbi->node_inode->i_mapping;
|
||||
struct f2fs_node *src, *dst;
|
||||
struct f2fs_inode *src, *dst;
|
||||
nid_t ino = ino_of_node(page);
|
||||
struct node_info old_ni, new_ni;
|
||||
struct page *ipage;
|
||||
@@ -1549,14 +1549,14 @@ int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
|
||||
SetPageUptodate(ipage);
|
||||
fill_node_footer(ipage, ino, ino, 0, true);
|
||||
|
||||
src = F2FS_NODE(page);
|
||||
dst = F2FS_NODE(ipage);
|
||||
src = F2FS_INODE(page);
|
||||
dst = F2FS_INODE(ipage);
|
||||
|
||||
memcpy(dst, src, (unsigned long)&src->i.i_ext - (unsigned long)&src->i);
|
||||
dst->i.i_size = 0;
|
||||
dst->i.i_blocks = cpu_to_le64(1);
|
||||
dst->i.i_links = cpu_to_le32(1);
|
||||
dst->i.i_xattr_nid = 0;
|
||||
memcpy(dst, src, (unsigned long)&src->i_ext - (unsigned long)src);
|
||||
dst->i_size = 0;
|
||||
dst->i_blocks = cpu_to_le64(1);
|
||||
dst->i_links = cpu_to_le32(1);
|
||||
dst->i_xattr_nid = 0;
|
||||
|
||||
new_ni = old_ni;
|
||||
new_ni.ino = ino;
|
||||
|
Reference in New Issue
Block a user