Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b638f0c4 authored by Jaegeuk Kim's avatar Jaegeuk Kim
Browse files

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: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
parent 77888c1e
Loading
Loading
Loading
Loading
+0 −6
Original line number Original line Diff line number Diff line
@@ -109,12 +109,6 @@ struct inode *f2fs_iget(struct super_block *sb, unsigned long ino)
	ret = do_read_inode(inode);
	ret = do_read_inode(inode);
	if (ret)
	if (ret)
		goto bad_inode;
		goto bad_inode;

	if (!sbi->por_doing && inode->i_nlink == 0) {
		ret = -ENOENT;
		goto bad_inode;
	}

make_now:
make_now:
	if (ino == F2FS_NODE_INO(sbi)) {
	if (ino == F2FS_NODE_INO(sbi)) {
		inode->i_mapping->a_ops = &f2fs_node_aops;
		inode->i_mapping->a_ops = &f2fs_node_aops;