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>
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user