From: Jaegeuk Kim Date: Tue, 21 May 2013 01:17:56 +0000 (+0900) Subject: f2fs: fix wrong condition check X-Git-Tag: submit/tizen/20141121.110247~3395 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14dc1184104279976c6e63583b7dc8e7a3956e04;p=platform%2Fkernel%2Flinux-3.10.git f2fs: fix wrong condition check While an orphan inode has zero link_count, f2fs_gc is able to select the inode for foreground gc. - f2fs_gc - do_garbage_collect - gc_data_segment : f2fs_iget is failed : get_valid_blocks() != 0, so that retry --> here we got the infinite loop. This patch resolved this issue. Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index a18946e..b44a4c1 100644 --- a/fs/f2fs/inode.c +++ b/fs/f2fs/inode.c @@ -109,12 +109,6 @@ struct inode *f2fs_iget(struct super_block *sb, unsigned long ino) ret = do_read_inode(inode); if (ret) goto bad_inode; - - if (!sbi->por_doing && inode->i_nlink == 0) { - ret = -ENOENT; - goto bad_inode; - } - make_now: if (ino == F2FS_NODE_INO(sbi)) { inode->i_mapping->a_ops = &f2fs_node_aops;