summaryrefslogtreecommitdiff
path: root/fs/f2fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk.kim@samsung.com>2013-05-21 10:17:56 +0900
committerChanho Park <chanho61.park@samsung.com>2014-11-18 11:43:47 +0900
commit14dc1184104279976c6e63583b7dc8e7a3956e04 (patch)
tree827071339e288557b986c501fdd2fd3833f2d0f4 /fs/f2fs
parent0a91d7a1c971c9f3b4142ac8c562077060374ddb (diff)
downloadlinux-3.10-14dc1184104279976c6e63583b7dc8e7a3956e04.tar.gz
linux-3.10-14dc1184104279976c6e63583b7dc8e7a3956e04.tar.bz2
linux-3.10-14dc1184104279976c6e63583b7dc8e7a3956e04.zip
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/f2fs')
-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 a18946e2a8b..b44a4c1194e 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;