diff options
-rw-r--r-- | fs/f2fs/recovery.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c index 679c465e9def..63b720bd7e75 100644 --- a/fs/f2fs/recovery.c +++ b/fs/f2fs/recovery.c | |||
@@ -93,10 +93,9 @@ static int recover_dentry(struct inode *inode, struct page *ipage) | |||
93 | } | 93 | } |
94 | retry: | 94 | retry: |
95 | de = f2fs_find_entry(dir, &name, &page); | 95 | de = f2fs_find_entry(dir, &name, &page); |
96 | if (de && inode->i_ino == le32_to_cpu(de->ino)) { | 96 | if (de && inode->i_ino == le32_to_cpu(de->ino)) |
97 | clear_inode_flag(F2FS_I(inode), FI_INC_LINK); | ||
98 | goto out_unmap_put; | 97 | goto out_unmap_put; |
99 | } | 98 | |
100 | if (de) { | 99 | if (de) { |
101 | einode = f2fs_iget(inode->i_sb, le32_to_cpu(de->ino)); | 100 | einode = f2fs_iget(inode->i_sb, le32_to_cpu(de->ino)); |
102 | if (IS_ERR(einode)) { | 101 | if (IS_ERR(einode)) { |
@@ -187,11 +186,7 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head) | |||
187 | goto next; | 186 | goto next; |
188 | 187 | ||
189 | entry = get_fsync_inode(head, ino_of_node(page)); | 188 | entry = get_fsync_inode(head, ino_of_node(page)); |
190 | if (entry) { | 189 | if (!entry) { |
191 | if (IS_INODE(page) && is_dent_dnode(page)) | ||
192 | set_inode_flag(F2FS_I(entry->inode), | ||
193 | FI_INC_LINK); | ||
194 | } else { | ||
195 | if (IS_INODE(page) && is_dent_dnode(page)) { | 190 | if (IS_INODE(page) && is_dent_dnode(page)) { |
196 | err = recover_inode_page(sbi, page); | 191 | err = recover_inode_page(sbi, page); |
197 | if (err) | 192 | if (err) |