From: Yunlei He <[email protected]>

GC move fbe data block will add some non uptodate page, we'd
better release it at the end.

Signed-off-by: Yunlei He <[email protected]>
Signed-off-by: Yongpeng Yang <[email protected]>
---
 fs/f2fs/gc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 8abf521530ff..09b65e6ea853 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -1315,6 +1315,7 @@ static int move_data_block(struct inode *inode, block_t 
bidx,
        struct node_info ni;
        struct folio *folio, *mfolio;
        block_t newaddr;
+       bool need_invalidate = true;
        int err = 0;
        bool lfs_mode = f2fs_lfs_mode(fio.sbi);
        int type = fio.sbi->am.atgc_enabled && (gc_type == BG_GC) &&
@@ -1450,7 +1451,11 @@ static int move_data_block(struct inode *inode, block_t 
bidx,
 put_out:
        f2fs_put_dnode(&dn);
 out:
+       if (folio_test_uptodate(folio))
+               need_invalidate = false;
        f2fs_folio_put(folio, true);
+       if (need_invalidate)
+               invalidate_mapping_pages(mapping, bidx, bidx);
        return err;
 }
 
-- 
2.34.1



_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to