meta inode's pages are used for encrypted, verity and compressed blocks,
so the meta inode's cache invalidation condition in do_checkpoint() should
consider compression as well, not just for verity and encryption, fix it.

Signed-off-by: Chao Yu <[email protected]>
---
 fs/f2fs/checkpoint.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 415bd120e561..c5593a6f9240 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1515,9 +1515,10 @@ static int do_checkpoint(struct f2fs_sb_info *sbi, 
struct cp_control *cpc)
 
        /*
         * invalidate intermediate page cache borrowed from meta inode which are
-        * used for migration of encrypted or verity inode's blocks.
+        * used for migration of encrypted, verity or compressed inode's blocks.
         */
-       if (f2fs_sb_has_encrypt(sbi) || f2fs_sb_has_verity(sbi))
+       if (f2fs_sb_has_encrypt(sbi) || f2fs_sb_has_verity(sbi) ||
+               f2fs_sb_has_compression(sbi))
                invalidate_mapping_pages(META_MAPPING(sbi),
                                MAIN_BLKADDR(sbi), MAX_BLKADDR(sbi) - 1);
 
-- 
2.26.2

Reply via email to