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

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

f2fs: check node page contents all the time



In get_node_page, if the page is up-to-date, we assumed that the page was not
reclaimed at all.
But, sometimes it was reported that its contents was missing.
So, just for sure, let's check its mapping and contents.

Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
parent 2e023174
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -1036,11 +1036,11 @@ struct page *get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid)
	err = read_node_page(page, READ_SYNC);
	if (err < 0)
		return ERR_PTR(err);
	else if (err == LOCKED_PAGE)
		goto got_it;

	else if (err != LOCKED_PAGE)
		lock_page(page);

	if (unlikely(!PageUptodate(page) || nid != nid_of_node(page))) {
		ClearPageUptodate(page);
		f2fs_put_page(page, 1);
		return ERR_PTR(-EIO);
	}
@@ -1048,7 +1048,6 @@ struct page *get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid)
		f2fs_put_page(page, 1);
		goto repeat;
	}
got_it:
	return page;
}