[PATCH 4/4] f2fs: should check the type of end_io after pullback by fscrypto

From: Jaegeuk Kim
Date: Fri Jul 06 2018 - 17:09:16 EST


This fixes to get the page type after pullback by fscrypto, since the original
page is bounce page but we should need to get control page which is what we
originally submitted.

Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
---
fs/f2fs/data.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index c3f9b9baf140..9a0fcec53d0e 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -152,7 +152,6 @@ static void f2fs_write_end_io(struct bio *bio)

bio_for_each_segment_all(bvec, bio, i) {
struct page *page = bvec->bv_page;
- enum count_type type = WB_DATA_TYPE(page);

if (IS_DUMMY_WRITTEN_PAGE(page)) {
set_page_private(page, (unsigned long)NULL);
@@ -169,14 +168,14 @@ static void f2fs_write_end_io(struct bio *bio)

if (unlikely(bio->bi_status)) {
mapping_set_error(page->mapping, -EIO);
- if (type == F2FS_WB_CP_DATA)
+ if (WB_DATA_TYPE(page) == F2FS_WB_CP_DATA)
f2fs_stop_checkpoint(sbi, true);
}

f2fs_bug_on(sbi, page->mapping == NODE_MAPPING(sbi) &&
page->index != nid_of_node(page));

- dec_page_count(sbi, type);
+ dec_page_count(sbi, WB_DATA_TYPE(page));
clear_cold_data(page);
end_page_writeback(page);
}
--
2.17.0.441.gb46fe60e1d-goog