checkpoint.c (31d1b7710262fba12282b24083f20dc76e0efc93) checkpoint.c (5222595d093ebe80329d38d255d14316257afb3e)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/checkpoint.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#include <linux/fs.h>

--- 897 unchanged lines hidden (view full) ---

906 f2fs_put_page(cp1, 1);
907 f2fs_put_page(cp2, 1);
908 return 0;
909
910free_fail_no_cp:
911 f2fs_put_page(cp1, 1);
912 f2fs_put_page(cp2, 1);
913fail_no_cp:
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/checkpoint.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#include <linux/fs.h>

--- 897 unchanged lines hidden (view full) ---

906 f2fs_put_page(cp1, 1);
907 f2fs_put_page(cp2, 1);
908 return 0;
909
910free_fail_no_cp:
911 f2fs_put_page(cp1, 1);
912 f2fs_put_page(cp2, 1);
913fail_no_cp:
914 kfree(sbi->ckpt);
914 kvfree(sbi->ckpt);
915 return -EINVAL;
916}
917
918static void __add_dirty_inode(struct inode *inode, enum inode_type type)
919{
920 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
921 int flag = (type == DIR_INODE) ? FI_DIRTY_DIR : FI_DIRTY_FILE;
922

--- 362 unchanged lines hidden (view full) ---

1285 /*
1286 * pagevec_lookup_tag and lock_page again will take
1287 * some extra time. Therefore, f2fs_update_meta_pages and
1288 * f2fs_sync_meta_pages are combined in this function.
1289 */
1290 struct page *page = f2fs_grab_meta_page(sbi, blk_addr);
1291 int err;
1292
915 return -EINVAL;
916}
917
918static void __add_dirty_inode(struct inode *inode, enum inode_type type)
919{
920 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
921 int flag = (type == DIR_INODE) ? FI_DIRTY_DIR : FI_DIRTY_FILE;
922

--- 362 unchanged lines hidden (view full) ---

1285 /*
1286 * pagevec_lookup_tag and lock_page again will take
1287 * some extra time. Therefore, f2fs_update_meta_pages and
1288 * f2fs_sync_meta_pages are combined in this function.
1289 */
1290 struct page *page = f2fs_grab_meta_page(sbi, blk_addr);
1291 int err;
1292
1293 memcpy(page_address(page), src, PAGE_SIZE);
1294 set_page_dirty(page);
1295
1296 f2fs_wait_on_page_writeback(page, META, true);
1297 f2fs_bug_on(sbi, PageWriteback(page));
1293 f2fs_wait_on_page_writeback(page, META, true);
1294 f2fs_bug_on(sbi, PageWriteback(page));
1295
1296 memcpy(page_address(page), src, PAGE_SIZE);
1297
1298 set_page_dirty(page);
1298 if (unlikely(!clear_page_dirty_for_io(page)))
1299 f2fs_bug_on(sbi, 1);
1300
1301 /* writeout cp pack 2 page */
1302 err = __f2fs_write_meta_page(page, &wbc, FS_CP_META_IO);
1303 if (unlikely(err && f2fs_cp_error(sbi))) {
1304 f2fs_put_page(page, 1);
1305 return;

--- 154 unchanged lines hidden (view full) ---

1460 /* barrier and flush checkpoint cp pack 2 page if it can */
1461 commit_checkpoint(sbi, ckpt, start_blk);
1462 f2fs_wait_on_all_pages_writeback(sbi);
1463
1464 /*
1465 * invalidate intermediate page cache borrowed from meta inode
1466 * which are used for migration of encrypted inode's blocks.
1467 */
1299 if (unlikely(!clear_page_dirty_for_io(page)))
1300 f2fs_bug_on(sbi, 1);
1301
1302 /* writeout cp pack 2 page */
1303 err = __f2fs_write_meta_page(page, &wbc, FS_CP_META_IO);
1304 if (unlikely(err && f2fs_cp_error(sbi))) {
1305 f2fs_put_page(page, 1);
1306 return;

--- 154 unchanged lines hidden (view full) ---

1461 /* barrier and flush checkpoint cp pack 2 page if it can */
1462 commit_checkpoint(sbi, ckpt, start_blk);
1463 f2fs_wait_on_all_pages_writeback(sbi);
1464
1465 /*
1466 * invalidate intermediate page cache borrowed from meta inode
1467 * which are used for migration of encrypted inode's blocks.
1468 */
1468 if (f2fs_sb_has_encrypt(sbi->sb))
1469 if (f2fs_sb_has_encrypt(sbi))
1469 invalidate_mapping_pages(META_MAPPING(sbi),
1470 MAIN_BLKADDR(sbi), MAX_BLKADDR(sbi) - 1);
1471
1472 f2fs_release_ino_entry(sbi, false);
1473
1474 f2fs_reset_fsync_node_info(sbi);
1475
1476 clear_sbi_flag(sbi, SBI_IS_DIRTY);

--- 150 unchanged lines hidden ---
1470 invalidate_mapping_pages(META_MAPPING(sbi),
1471 MAIN_BLKADDR(sbi), MAX_BLKADDR(sbi) - 1);
1472
1473 f2fs_release_ino_entry(sbi, false);
1474
1475 f2fs_reset_fsync_node_info(sbi);
1476
1477 clear_sbi_flag(sbi, SBI_IS_DIRTY);

--- 150 unchanged lines hidden ---