@@ -513,6 +513,7 @@ static int f2fs_write_meta_pages(struct address_space *mapping,
513513 struct writeback_control * wbc )
514514{
515515 struct f2fs_sb_info * sbi = F2FS_M_SB (mapping );
516+ struct f2fs_lock_context lc ;
516517 long diff , written ;
517518
518519 if (unlikely (is_sbi_flag_set (sbi , SBI_POR_DOING )))
@@ -525,13 +526,13 @@ static int f2fs_write_meta_pages(struct address_space *mapping,
525526 goto skip_write ;
526527
527528 /* if locked failed, cp will flush dirty pages instead */
528- if (!f2fs_down_write_trylock (& sbi -> cp_global_sem ))
529+ if (!f2fs_down_write_trylock_trace (& sbi -> cp_global_sem , & lc ))
529530 goto skip_write ;
530531
531532 trace_f2fs_writepages (mapping -> host , wbc , META );
532533 diff = nr_pages_to_write (sbi , META , wbc );
533534 written = f2fs_sync_meta_pages (sbi , META , wbc -> nr_to_write , FS_META_IO );
534- f2fs_up_write (& sbi -> cp_global_sem );
535+ f2fs_up_write_trace (& sbi -> cp_global_sem , & lc );
535536 wbc -> nr_to_write = max ((long )0 , wbc -> nr_to_write - written - diff );
536537 return 0 ;
537538
@@ -1780,6 +1781,7 @@ static int do_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
17801781int f2fs_write_checkpoint (struct f2fs_sb_info * sbi , struct cp_control * cpc )
17811782{
17821783 struct f2fs_checkpoint * ckpt = F2FS_CKPT (sbi );
1784+ struct f2fs_lock_context lc ;
17831785 unsigned long long ckpt_ver ;
17841786 int err = 0 ;
17851787
@@ -1794,7 +1796,7 @@ int f2fs_write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
17941796 f2fs_warn (sbi , "Start checkpoint disabled!" );
17951797 }
17961798 if (cpc -> reason != CP_RESIZE )
1797- f2fs_down_write (& sbi -> cp_global_sem );
1799+ f2fs_down_write_trace (& sbi -> cp_global_sem , & lc );
17981800
17991801 stat_cp_time (cpc , CP_TIME_LOCK );
18001802
@@ -1884,7 +1886,7 @@ int f2fs_write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc)
18841886 trace_f2fs_write_checkpoint (sbi -> sb , cpc -> reason , CP_PHASE_FINISH_CHECKPOINT );
18851887out :
18861888 if (cpc -> reason != CP_RESIZE )
1887- f2fs_up_write (& sbi -> cp_global_sem );
1889+ f2fs_up_write_trace (& sbi -> cp_global_sem , & lc );
18881890 return err ;
18891891}
18901892
0 commit comments