diff options
| -rw-r--r-- | fs/f2fs/inode.c | 3 | ||||
| -rw-r--r-- | fs/f2fs/node.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index 20ed9e8b8..ade5b4eda 100644 --- a/fs/f2fs/inode.c +++ b/fs/f2fs/inode.c @@ -153,7 +153,8 @@ bool f2fs_inode_chksum_verify(struct f2fs_sb_info *sbi, struct page *page) struct f2fs_inode *ri; __u32 provided, calculated; - if (!f2fs_enable_inode_chksum(sbi, page)) + if (!f2fs_enable_inode_chksum(sbi, page) || + PageDirty(page) || PageWriteback(page)) return true; ri = &F2FS_NODE(page)->i; diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index d1cbddcb1..83c456025 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1199,9 +1199,9 @@ page_hit: nid, nid_of_node(page), ino_of_node(page), ofs_of_node(page), cpver_of_node(page), next_blkaddr_of_node(page)); - ClearPageUptodate(page); err = -EINVAL; out_err: + ClearPageUptodate(page); f2fs_put_page(page, 1); return ERR_PTR(err); } |
