f2fs: introduce F2FS_INODE macro to get f2fs_inode
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Thu, 26 Dec 2013 07:30:41 +0000 (16:30 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Thu, 26 Dec 2013 11:32:48 +0000 (20:32 +0900)
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>
fs/f2fs/dir.c
fs/f2fs/f2fs.h
fs/f2fs/inode.c
fs/f2fs/node.c
fs/f2fs/recovery.c

index f0b463049444218c789c76aebc139f2ed45d279c..6da77e5c753b353416a2e73e15cd879645b56744 100644 (file)
@@ -261,12 +261,12 @@ void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de,
 
 static void init_dent_inode(const struct qstr *name, struct page *ipage)
 {
-       struct f2fs_node *rn;
+       struct f2fs_inode *ri;
 
        /* copy name info. to this inode page */
-       rn = F2FS_NODE(ipage);
-       rn->i.i_namelen = cpu_to_le32(name->len);
-       memcpy(rn->i.i_name, name->name, name->len);
+       ri = F2FS_INODE(ipage);
+       ri->i_namelen = cpu_to_le32(name->len);
+       memcpy(ri->i_name, name->name, name->len);
        set_page_dirty(ipage);
 }
 
index ba91186823dd4d37900c3f480a8b997fabd32b9e..1a06f0aaa7d99107ad197fbb665a6237081bb99c 100644 (file)
@@ -498,6 +498,11 @@ static inline struct f2fs_node *F2FS_NODE(struct page *page)
        return (struct f2fs_node *)page_address(page);
 }
 
+static inline struct f2fs_inode *F2FS_INODE(struct page *page)
+{
+       return &((struct f2fs_node *)page_address(page))->i;
+}
+
 static inline struct f2fs_nm_info *NM_I(struct f2fs_sb_info *sbi)
 {
        return (struct f2fs_nm_info *)(sbi->nm_info);
index d0eaa9faeca0a948bfd662846a0b173f69ea1206..a91f45177cd9bbb82fab1dfc4b94c4e5f2755ae1 100644 (file)
@@ -67,7 +67,6 @@ static int do_read_inode(struct inode *inode)
        struct f2fs_sb_info *sbi = F2FS_SB(inode->i_sb);
        struct f2fs_inode_info *fi = F2FS_I(inode);
        struct page *node_page;
-       struct f2fs_node *rn;
        struct f2fs_inode *ri;
 
        /* Check if ino is within scope */
@@ -81,8 +80,7 @@ static int do_read_inode(struct inode *inode)
        if (IS_ERR(node_page))
                return PTR_ERR(node_page);
 
-       rn = F2FS_NODE(node_page);
-       ri = &(rn->i);
+       ri = F2FS_INODE(node_page);
 
        inode->i_mode = le16_to_cpu(ri->i_mode);
        i_uid_write(inode, le32_to_cpu(ri->i_uid));
@@ -175,13 +173,11 @@ bad_inode:
 
 void update_inode(struct inode *inode, struct page *node_page)
 {
-       struct f2fs_node *rn;
        struct f2fs_inode *ri;
 
        f2fs_wait_on_page_writeback(node_page, NODE, false);
 
-       rn = F2FS_NODE(node_page);
-       ri = &(rn->i);
+       ri = F2FS_INODE(node_page);
 
        ri->i_mode = cpu_to_le16(inode->i_mode);
        ri->i_advise = F2FS_I(inode)->i_advise;
index e8fe52d6073c3e81abd535f6d38dc0a709009b99..9405a17a671e83d5047225134a4b5f490937e54e 100644 (file)
@@ -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;
index 4d411a26b85d547f1ca05f23af7de6f2424a4518..96e690b6f0faafdb07671076b0828c545b5b8d47 100644 (file)
@@ -40,8 +40,7 @@ static struct fsync_inode_entry *get_fsync_inode(struct list_head *head,
 
 static int recover_dentry(struct page *ipage, struct inode *inode)
 {
-       struct f2fs_node *raw_node = F2FS_NODE(ipage);
-       struct f2fs_inode *raw_inode = &(raw_node->i);
+       struct f2fs_inode *raw_inode = F2FS_INODE(ipage);
        nid_t pino = le32_to_cpu(raw_inode->i_pino);
        struct f2fs_dir_entry *de;
        struct qstr name;
@@ -105,8 +104,7 @@ out:
 
 static int recover_inode(struct inode *inode, struct page *node_page)
 {
-       struct f2fs_node *raw_node = F2FS_NODE(node_page);
-       struct f2fs_inode *raw_inode = &(raw_node->i);
+       struct f2fs_inode *raw_inode = F2FS_INODE(node_page);
 
        if (!IS_INODE(node_page))
                return 0;