f2fs: fix the initial inode page for recovery
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 8 Aug 2014 00:04:24 +0000 (17:04 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 19 Aug 2014 17:01:34 +0000 (10:01 -0700)
If a new inode page is needed for recover_dentry, we should assing i_inline
as zero.

Reviewed-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/node.c

index 1f33299074831ae677d5d58fb6601372448dc4be..093d7991b7ed510eb4d85081ad4d3cba0182a7d9 100644 (file)
@@ -1651,6 +1651,7 @@ int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
        dst->i_blocks = cpu_to_le64(1);
        dst->i_links = cpu_to_le32(1);
        dst->i_xattr_nid = 0;
+       dst->i_inline = src->i_inline & F2FS_INLINE_XATTR;
 
        new_ni = old_ni;
        new_ni.ino = ino;
@@ -1659,6 +1660,7 @@ int recover_inode_page(struct f2fs_sb_info *sbi, struct page *page)
                WARN_ON(1);
        set_node_addr(sbi, &new_ni, NEW_ADDR, false);
        inc_valid_inode_count(sbi);
+       set_page_dirty(ipage);
        f2fs_put_page(ipage, 1);
        return 0;
 }