aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-05-20 21:17:56 -0400
committerJaegeuk Kim <jaegeuk.kim@samsung.com>2013-05-28 02:03:03 -0400
commitb638f0c4b8fca9d2f82805a2d6601b09283e0d32 (patch)
tree48c12176c2906dd53269e45aed43ac6210e03d64 /fs
parent77888c1e42e8c76e16204cd99c19a01829421402 (diff)
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 <jaegeuk.kim@samsung.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/f2fs/inode.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index a18946e2a8b4..b44a4c1194ea 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)
109 ret = do_read_inode(inode); 109 ret = do_read_inode(inode);
110 if (ret) 110 if (ret)
111 goto bad_inode; 111 goto bad_inode;
112
113 if (!sbi->por_doing && inode->i_nlink == 0) {
114 ret = -ENOENT;
115 goto bad_inode;
116 }
117
118make_now: 112make_now:
119 if (ino == F2FS_NODE_INO(sbi)) { 113 if (ino == F2FS_NODE_INO(sbi)) {
120 inode->i_mapping->a_ops = &f2fs_node_aops; 114 inode->i_mapping->a_ops = &f2fs_node_aops;