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 --- |