@@ -888,10 +888,8 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
888
888
unsigned long orphan_num = sbi -> im [ORPHAN_INO ].ino_num ;
889
889
nid_t last_nid = nm_i -> next_scan_nid ;
890
890
block_t start_blk ;
891
- struct page * cp_page ;
892
891
unsigned int data_sum_blocks , orphan_blocks ;
893
892
__u32 crc32 = 0 ;
894
- void * kaddr ;
895
893
int i ;
896
894
int cp_payload_blks = __cp_payload (sbi );
897
895
@@ -988,19 +986,11 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
988
986
start_blk = __start_cp_addr (sbi );
989
987
990
988
/* write out checkpoint buffer at block 0 */
991
- cp_page = grab_meta_page (sbi , start_blk ++ );
992
- kaddr = page_address (cp_page );
993
- memcpy (kaddr , ckpt , F2FS_BLKSIZE );
994
- set_page_dirty (cp_page );
995
- f2fs_put_page (cp_page , 1 );
996
-
997
- for (i = 1 ; i < 1 + cp_payload_blks ; i ++ ) {
998
- cp_page = grab_meta_page (sbi , start_blk ++ );
999
- kaddr = page_address (cp_page );
1000
- memcpy (kaddr , (char * )ckpt + i * F2FS_BLKSIZE , F2FS_BLKSIZE );
1001
- set_page_dirty (cp_page );
1002
- f2fs_put_page (cp_page , 1 );
1003
- }
989
+ update_meta_page (sbi , ckpt , start_blk ++ );
990
+
991
+ for (i = 1 ; i < 1 + cp_payload_blks ; i ++ )
992
+ update_meta_page (sbi , (char * )ckpt + i * F2FS_BLKSIZE ,
993
+ start_blk ++ );
1004
994
1005
995
if (orphan_num ) {
1006
996
write_orphan_inodes (sbi , start_blk );
@@ -1015,11 +1005,7 @@ static void do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
1015
1005
}
1016
1006
1017
1007
/* writeout checkpoint block */
1018
- cp_page = grab_meta_page (sbi , start_blk );
1019
- kaddr = page_address (cp_page );
1020
- memcpy (kaddr , ckpt , F2FS_BLKSIZE );
1021
- set_page_dirty (cp_page );
1022
- f2fs_put_page (cp_page , 1 );
1008
+ update_meta_page (sbi , ckpt , start_blk );
1023
1009
1024
1010
/* wait for previous submitted node/meta pages writeback */
1025
1011
wait_on_all_pages_writeback (sbi );
0 commit comments