]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
f2fs: don't keep meta pages used for block migration
authorChao Yu <yuchao0@huawei.com>
Fri, 27 Jul 2018 10:15:13 +0000 (18:15 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 1 Aug 2018 18:52:36 +0000 (11:52 -0700)
For migration of encrypted inode's block, we load data of encrypted block
into meta inode's page cache, after checkpoint, those all intermediate
pages should be clean, and no one will read them again, so let's just
release them for more memory.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c

index 3f11b3abd766603c854034ba07e5c270807415b0..1425aced91ec8f6f2fc9774d6b808ca57e214f8c 100644 (file)
@@ -1408,6 +1408,14 @@ static int do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
        commit_checkpoint(sbi, ckpt, start_blk);
        wait_on_all_pages_writeback(sbi);
 
+       /*
+        * invalidate intermediate page cache borrowed from meta inode
+        * which are used for migration of encrypted inode's blocks.
+        */
+       if (f2fs_sb_has_encrypt(sbi->sb))
+               invalidate_mapping_pages(META_MAPPING(sbi),
+                               MAIN_BLKADDR(sbi), MAX_BLKADDR(sbi) - 1);
+
        f2fs_release_ino_entry(sbi, false);
 
        clear_sbi_flag(sbi, SBI_IS_DIRTY);