Lines Matching refs:curseg

2539 	struct curseg_info *curseg = CURSEG_I(sbi, type);  in f2fs_curseg_valid_blocks()  local
2543 return curseg->next_blkoff; in f2fs_curseg_valid_blocks()
2601 struct curseg_info *curseg = CURSEG_I(sbi, type); in write_current_sum_page() local
2603 struct f2fs_summary_block *src = curseg->sum_blk; in write_current_sum_page()
2609 mutex_lock(&curseg->curseg_mutex); in write_current_sum_page()
2611 down_read(&curseg->journal_rwsem); in write_current_sum_page()
2612 memcpy(&dst->journal, curseg->journal, SUM_JOURNAL_SIZE); in write_current_sum_page()
2613 up_read(&curseg->journal_rwsem); in write_current_sum_page()
2618 mutex_unlock(&curseg->curseg_mutex); in write_current_sum_page()
2625 struct curseg_info *curseg, int type) in is_next_segment_free() argument
2627 unsigned int segno = curseg->segno + 1; in is_next_segment_free()
2728 struct curseg_info *curseg = CURSEG_I(sbi, type); in reset_curseg() local
2730 unsigned short seg_type = curseg->seg_type; in reset_curseg()
2732 curseg->inited = true; in reset_curseg()
2733 curseg->segno = curseg->next_segno; in reset_curseg()
2734 curseg->zone = GET_ZONE_FROM_SEG(sbi, curseg->segno); in reset_curseg()
2735 curseg->next_blkoff = 0; in reset_curseg()
2736 curseg->next_segno = NULL_SEGNO; in reset_curseg()
2738 sum_footer = &(curseg->sum_blk->footer); in reset_curseg()
2747 __set_sit_entry_type(sbi, seg_type, curseg->segno, modified); in reset_curseg()
2752 struct curseg_info *curseg = CURSEG_I(sbi, type); in __get_next_segno() local
2753 unsigned short seg_type = curseg->seg_type; in __get_next_segno()
2761 return curseg->segno; in __get_next_segno()
2764 if (!curseg->inited) in __get_next_segno()
2781 return curseg->segno; in __get_next_segno()
2790 struct curseg_info *curseg = CURSEG_I(sbi, type); in new_curseg() local
2791 unsigned short seg_type = curseg->seg_type; in new_curseg()
2792 unsigned int segno = curseg->segno; in new_curseg()
2795 if (curseg->inited) in new_curseg()
2796 write_sum_page(sbi, curseg->sum_blk, in new_curseg()
2806 curseg->next_segno = segno; in new_curseg()
2808 curseg->alloc_type = LFS; in new_curseg()
2810 curseg->fragment_remained_chunk = in new_curseg()
2848 struct curseg_info *curseg = CURSEG_I(sbi, type); in change_curseg() local
2849 unsigned int new_segno = curseg->next_segno; in change_curseg()
2853 write_sum_page(sbi, curseg->sum_blk, GET_SUM_BLOCK(sbi, curseg->segno)); in change_curseg()
2863 curseg->alloc_type = SSR; in change_curseg()
2864 curseg->next_blkoff = __next_free_blkoff(sbi, curseg->segno, 0); in change_curseg()
2869 memset(curseg->sum_blk, 0, SUM_ENTRY_SIZE); in change_curseg()
2873 memcpy(curseg->sum_blk, sum_node, SUM_ENTRY_SIZE); in change_curseg()
2884 struct curseg_info *curseg = CURSEG_I(sbi, type); in get_atssr_segment() local
2886 curseg->seg_type = target_type; in get_atssr_segment()
2889 struct seg_entry *se = get_seg_entry(sbi, curseg->next_segno); in get_atssr_segment()
2891 curseg->seg_type = se->type; in get_atssr_segment()
2895 curseg->seg_type = CURSEG_COLD_DATA; in get_atssr_segment()
2898 stat_inc_seg_type(sbi, curseg); in get_atssr_segment()
2903 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_ALL_DATA_ATGC); in __f2fs_init_atgc_curseg() local
2910 mutex_lock(&curseg->curseg_mutex); in __f2fs_init_atgc_curseg()
2916 mutex_unlock(&curseg->curseg_mutex); in __f2fs_init_atgc_curseg()
2928 struct curseg_info *curseg = CURSEG_I(sbi, type); in __f2fs_save_inmem_curseg() local
2930 mutex_lock(&curseg->curseg_mutex); in __f2fs_save_inmem_curseg()
2931 if (!curseg->inited) in __f2fs_save_inmem_curseg()
2934 if (get_valid_blocks(sbi, curseg->segno, false)) { in __f2fs_save_inmem_curseg()
2935 write_sum_page(sbi, curseg->sum_blk, in __f2fs_save_inmem_curseg()
2936 GET_SUM_BLOCK(sbi, curseg->segno)); in __f2fs_save_inmem_curseg()
2939 __set_test_and_free(sbi, curseg->segno, true); in __f2fs_save_inmem_curseg()
2943 mutex_unlock(&curseg->curseg_mutex); in __f2fs_save_inmem_curseg()
2956 struct curseg_info *curseg = CURSEG_I(sbi, type); in __f2fs_restore_inmem_curseg() local
2958 mutex_lock(&curseg->curseg_mutex); in __f2fs_restore_inmem_curseg()
2959 if (!curseg->inited) in __f2fs_restore_inmem_curseg()
2961 if (get_valid_blocks(sbi, curseg->segno, false)) in __f2fs_restore_inmem_curseg()
2965 __set_test_and_inuse(sbi, curseg->segno); in __f2fs_restore_inmem_curseg()
2968 mutex_unlock(&curseg->curseg_mutex); in __f2fs_restore_inmem_curseg()
2982 struct curseg_info *curseg = CURSEG_I(sbi, type); in get_ssr_segment() local
2984 unsigned short seg_type = curseg->seg_type; in get_ssr_segment()
2992 curseg->next_segno = segno; in get_ssr_segment()
3019 curseg->next_segno = segno; in get_ssr_segment()
3028 curseg->next_segno = segno; in get_ssr_segment()
3037 struct curseg_info *curseg = CURSEG_I(sbi, type); in need_new_seg() local
3040 curseg->seg_type == CURSEG_WARM_NODE) in need_new_seg()
3042 if (curseg->alloc_type == LFS && in need_new_seg()
3043 is_next_segment_free(sbi, curseg, type) && in need_new_seg()
3054 struct curseg_info *curseg = CURSEG_I(sbi, type); in f2fs_allocate_segment_for_resize() local
3058 mutex_lock(&curseg->curseg_mutex); in f2fs_allocate_segment_for_resize()
3070 stat_inc_seg_type(sbi, curseg); in f2fs_allocate_segment_for_resize()
3076 if (segno != curseg->segno) in f2fs_allocate_segment_for_resize()
3078 type, segno, curseg->segno); in f2fs_allocate_segment_for_resize()
3080 mutex_unlock(&curseg->curseg_mutex); in f2fs_allocate_segment_for_resize()
3087 struct curseg_info *curseg = CURSEG_I(sbi, type); in __allocate_new_segment() local
3090 if (!force && curseg->inited && in __allocate_new_segment()
3091 !curseg->next_blkoff && in __allocate_new_segment()
3092 !get_valid_blocks(sbi, curseg->segno, new_sec) && in __allocate_new_segment()
3093 !get_ckpt_valid_blocks(sbi, curseg->segno, new_sec)) in __allocate_new_segment()
3096 old_segno = curseg->segno; in __allocate_new_segment()
3098 stat_inc_seg_type(sbi, curseg); in __allocate_new_segment()
3418 struct curseg_info *curseg = CURSEG_I(sbi, type); in f2fs_allocate_data_block() local
3426 mutex_lock(&curseg->curseg_mutex); in f2fs_allocate_data_block()
3435 *new_blkaddr = NEXT_FREE_BLKADDR(sbi, curseg); in f2fs_allocate_data_block()
3437 f2fs_bug_on(sbi, curseg->next_blkoff >= sbi->blocks_per_seg); in f2fs_allocate_data_block()
3441 curseg->sum_blk->entries[curseg->next_blkoff] = *sum; in f2fs_allocate_data_block()
3442 if (curseg->alloc_type == SSR) { in f2fs_allocate_data_block()
3443 curseg->next_blkoff = f2fs_find_next_ssr_block(sbi, curseg); in f2fs_allocate_data_block()
3445 curseg->next_blkoff++; in f2fs_allocate_data_block()
3447 f2fs_randomize_chunk(sbi, curseg); in f2fs_allocate_data_block()
3449 if (curseg->next_blkoff >= f2fs_usable_blks_in_seg(sbi, curseg->segno)) in f2fs_allocate_data_block()
3451 stat_inc_block_count(sbi, curseg); in f2fs_allocate_data_block()
3482 stat_inc_seg_type(sbi, curseg); in f2fs_allocate_data_block()
3499 fill_node_footer_blkaddr(page, NEXT_FREE_BLKADDR(sbi, curseg)); in f2fs_allocate_data_block()
3518 mutex_unlock(&curseg->curseg_mutex); in f2fs_allocate_data_block()
3704 struct curseg_info *curseg; in f2fs_do_replace_block() local
3736 curseg = CURSEG_I(sbi, type); in f2fs_do_replace_block()
3738 mutex_lock(&curseg->curseg_mutex); in f2fs_do_replace_block()
3741 old_cursegno = curseg->segno; in f2fs_do_replace_block()
3742 old_blkoff = curseg->next_blkoff; in f2fs_do_replace_block()
3743 old_alloc_type = curseg->alloc_type; in f2fs_do_replace_block()
3746 if (segno != curseg->segno) { in f2fs_do_replace_block()
3747 curseg->next_segno = segno; in f2fs_do_replace_block()
3751 curseg->next_blkoff = GET_BLKOFF_FROM_SEG0(sbi, new_blkaddr); in f2fs_do_replace_block()
3752 curseg->sum_blk->entries[curseg->next_blkoff] = *sum; in f2fs_do_replace_block()
3774 if (old_cursegno != curseg->segno) { in f2fs_do_replace_block()
3775 curseg->next_segno = old_cursegno; in f2fs_do_replace_block()
3778 curseg->next_blkoff = old_blkoff; in f2fs_do_replace_block()
3779 curseg->alloc_type = old_alloc_type; in f2fs_do_replace_block()
3783 mutex_unlock(&curseg->curseg_mutex); in f2fs_do_replace_block()
3923 struct curseg_info *curseg; in read_normal_summaries() local
3973 curseg = CURSEG_I(sbi, type); in read_normal_summaries()
3974 mutex_lock(&curseg->curseg_mutex); in read_normal_summaries()
3977 down_write(&curseg->journal_rwsem); in read_normal_summaries()
3978 memcpy(curseg->journal, &sum->journal, SUM_JOURNAL_SIZE); in read_normal_summaries()
3979 up_write(&curseg->journal_rwsem); in read_normal_summaries()
3981 memcpy(curseg->sum_blk->entries, sum->entries, SUM_ENTRY_SIZE); in read_normal_summaries()
3982 memcpy(&curseg->sum_blk->footer, &sum->footer, SUM_FOOTER_SIZE); in read_normal_summaries()
3983 curseg->next_segno = segno; in read_normal_summaries()
3985 curseg->alloc_type = ckpt->alloc_type[type]; in read_normal_summaries()
3986 curseg->next_blkoff = blk_off; in read_normal_summaries()
3987 mutex_unlock(&curseg->curseg_mutex); in read_normal_summaries()
4229 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA); in remove_sits_in_journal() local
4230 struct f2fs_journal *journal = curseg->journal; in remove_sits_in_journal()
4233 down_write(&curseg->journal_rwsem); in remove_sits_in_journal()
4245 up_write(&curseg->journal_rwsem); in remove_sits_in_journal()
4256 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA); in f2fs_flush_sit_entries() local
4257 struct f2fs_journal *journal = curseg->journal; in f2fs_flush_sit_entries()
4301 down_write(&curseg->journal_rwsem); in f2fs_flush_sit_entries()
4348 up_write(&curseg->journal_rwsem); in f2fs_flush_sit_entries()
4550 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA); in build_sit_entries() local
4551 struct f2fs_journal *journal = curseg->journal; in build_sit_entries()
4616 down_read(&curseg->journal_rwsem); in build_sit_entries()
4669 up_read(&curseg->journal_rwsem); in build_sit_entries()
4823 struct curseg_info *curseg = CURSEG_I(sbi, i); in sanity_check_curseg() local
4824 struct seg_entry *se = get_seg_entry(sbi, curseg->segno); in sanity_check_curseg()
4825 unsigned int blkofs = curseg->next_blkoff; in sanity_check_curseg()
4831 sanity_check_seg_type(sbi, curseg->seg_type); in sanity_check_curseg()
4833 if (curseg->alloc_type != LFS && curseg->alloc_type != SSR) { in sanity_check_curseg()
4836 curseg->alloc_type); in sanity_check_curseg()
4844 if (curseg->alloc_type == SSR) in sanity_check_curseg()
4853 i, curseg->segno, curseg->alloc_type, in sanity_check_curseg()
4854 curseg->next_blkoff, blkofs); in sanity_check_curseg()