f2fs: fix counting inline_data inode numbers
authorJaegeuk Kim <jaegeuk@kernel.org>
Tue, 14 Oct 2014 17:29:50 +0000 (10:29 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 4 Nov 2014 00:07:33 +0000 (16:07 -0800)
This patch fixes wrongly counting inline_data inode numbers.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/inode.c
fs/f2fs/namei.c

index b9b1d6b..4131e3c 100644 (file)
@@ -169,6 +169,7 @@ make_now:
                goto bad_inode;
        }
        unlock_new_inode(inode);
+       stat_inc_inline_inode(inode);
        stat_inc_inline_dir(inode);
        trace_f2fs_iget(inode);
        return inode;
@@ -296,12 +297,12 @@ void f2fs_evict_inode(struct inode *inode)
 
        f2fs_lock_op(sbi);
        remove_inode_page(inode);
-       stat_dec_inline_inode(inode);
        f2fs_unlock_op(sbi);
 
        sb_end_intwrite(inode->i_sb);
 no_delete:
        stat_dec_inline_dir(inode);
+       stat_dec_inline_inode(inode);
        invalidate_mapping_pages(NODE_MAPPING(sbi), inode->i_ino, inode->i_ino);
        if (xnid)
                invalidate_mapping_pages(NODE_MAPPING(sbi), xnid, xnid);
@@ -327,7 +328,6 @@ void handle_failed_inode(struct inode *inode)
                f2fs_truncate(inode);
 
        remove_inode_page(inode);
-       stat_dec_inline_inode(inode);
 
        clear_inode_flag(F2FS_I(inode), FI_INLINE_DENTRY);
        alloc_nid_failed(sbi, inode->i_ino);
index 94ba291..a004a97 100644 (file)
@@ -198,8 +198,6 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
                inode = f2fs_iget(dir->i_sb, ino);
                if (IS_ERR(inode))
                        return ERR_CAST(inode);
-
-               stat_inc_inline_inode(inode);
        }
 
        return d_splice_alias(inode, dentry);