f2fs: don't keep meta inode pages used for compressed block migration
authorChao Yu <yuchao0@huawei.com>
Tue, 7 Jul 2020 01:35:41 +0000 (09:35 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 9 Jul 2020 05:28:34 +0000 (22:28 -0700)
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 <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c

index 2360649..8f5753c 100644 (file)
@@ -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);