diff options
Diffstat (limited to 'fs/f2fs/recovery.c')
-rw-r--r-- | fs/f2fs/recovery.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c index f16d12df8e99..60c8a5097058 100644 --- a/fs/f2fs/recovery.c +++ b/fs/f2fs/recovery.c | |||
@@ -53,7 +53,7 @@ static int recover_dentry(struct page *ipage, struct inode *inode) | |||
53 | 53 | ||
54 | dir = f2fs_iget(inode->i_sb, le32_to_cpu(raw_inode->i_pino)); | 54 | dir = f2fs_iget(inode->i_sb, le32_to_cpu(raw_inode->i_pino)); |
55 | if (IS_ERR(dir)) { | 55 | if (IS_ERR(dir)) { |
56 | err = -EINVAL; | 56 | err = PTR_ERR(dir); |
57 | goto out; | 57 | goto out; |
58 | } | 58 | } |
59 | 59 | ||
@@ -156,8 +156,12 @@ static int find_fsync_dnodes(struct f2fs_sb_info *sbi, struct list_head *head) | |||
156 | } | 156 | } |
157 | if (IS_INODE(page)) { | 157 | if (IS_INODE(page)) { |
158 | err = recover_inode(entry->inode, page); | 158 | err = recover_inode(entry->inode, page); |
159 | if (err) | 159 | if (err == -ENOENT) { |
160 | goto next; | ||
161 | } else if (err) { | ||
162 | err = -EINVAL; | ||
160 | goto unlock_out; | 163 | goto unlock_out; |
164 | } | ||
161 | } | 165 | } |
162 | next: | 166 | next: |
163 | /* check next segment */ | 167 | /* check next segment */ |