Lines Matching refs:curseg
2381 struct curseg_info *curseg = CURSEG_I(sbi, type); in __add_sum_entry() local
2382 void *addr = curseg->sum_blk; in __add_sum_entry()
2384 addr += curseg->next_blkoff * sizeof(struct f2fs_summary); in __add_sum_entry()
2447 struct curseg_info *curseg = CURSEG_I(sbi, type); in write_current_sum_page() local
2449 struct f2fs_summary_block *src = curseg->sum_blk; in write_current_sum_page()
2455 mutex_lock(&curseg->curseg_mutex); in write_current_sum_page()
2457 down_read(&curseg->journal_rwsem); in write_current_sum_page()
2458 memcpy(&dst->journal, curseg->journal, SUM_JOURNAL_SIZE); in write_current_sum_page()
2459 up_read(&curseg->journal_rwsem); in write_current_sum_page()
2464 mutex_unlock(&curseg->curseg_mutex); in write_current_sum_page()
2471 struct curseg_info *curseg, int type) in is_next_segment_free() argument
2473 unsigned int segno = curseg->segno + 1; in is_next_segment_free()
2574 struct curseg_info *curseg = CURSEG_I(sbi, type); in reset_curseg() local
2576 unsigned short seg_type = curseg->seg_type; in reset_curseg()
2578 curseg->inited = true; in reset_curseg()
2579 curseg->segno = curseg->next_segno; in reset_curseg()
2580 curseg->zone = GET_ZONE_FROM_SEG(sbi, curseg->segno); in reset_curseg()
2581 curseg->next_blkoff = 0; in reset_curseg()
2582 curseg->next_segno = NULL_SEGNO; in reset_curseg()
2584 sum_footer = &(curseg->sum_blk->footer); in reset_curseg()
2593 __set_sit_entry_type(sbi, seg_type, curseg->segno, modified); in reset_curseg()
2598 struct curseg_info *curseg = CURSEG_I(sbi, type); in __get_next_segno() local
2599 unsigned short seg_type = curseg->seg_type; in __get_next_segno()
2605 return curseg->segno; in __get_next_segno()
2608 if (!curseg->inited) in __get_next_segno()
2625 return curseg->segno; in __get_next_segno()
2634 struct curseg_info *curseg = CURSEG_I(sbi, type); in new_curseg() local
2635 unsigned short seg_type = curseg->seg_type; in new_curseg()
2636 unsigned int segno = curseg->segno; in new_curseg()
2639 if (curseg->inited) in new_curseg()
2640 write_sum_page(sbi, curseg->sum_blk, in new_curseg()
2650 curseg->next_segno = segno; in new_curseg()
2652 curseg->alloc_type = LFS; in new_curseg()
2699 struct curseg_info *curseg = CURSEG_I(sbi, type); in change_curseg() local
2700 unsigned int new_segno = curseg->next_segno; in change_curseg()
2705 write_sum_page(sbi, curseg->sum_blk, in change_curseg()
2706 GET_SUM_BLOCK(sbi, curseg->segno)); in change_curseg()
2716 curseg->alloc_type = SSR; in change_curseg()
2717 curseg->next_blkoff = __next_free_blkoff(sbi, curseg->segno, 0); in change_curseg()
2722 memset(curseg->sum_blk, 0, SUM_ENTRY_SIZE); in change_curseg()
2726 memcpy(curseg->sum_blk, sum_node, SUM_ENTRY_SIZE); in change_curseg()
2737 struct curseg_info *curseg = CURSEG_I(sbi, type); in get_atssr_segment() local
2739 curseg->seg_type = target_type; in get_atssr_segment()
2742 struct seg_entry *se = get_seg_entry(sbi, curseg->next_segno); in get_atssr_segment()
2744 curseg->seg_type = se->type; in get_atssr_segment()
2748 curseg->seg_type = CURSEG_COLD_DATA; in get_atssr_segment()
2751 stat_inc_seg_type(sbi, curseg); in get_atssr_segment()
2756 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_ALL_DATA_ATGC); in __f2fs_init_atgc_curseg() local
2763 mutex_lock(&curseg->curseg_mutex); in __f2fs_init_atgc_curseg()
2769 mutex_unlock(&curseg->curseg_mutex); in __f2fs_init_atgc_curseg()
2781 struct curseg_info *curseg = CURSEG_I(sbi, type); in __f2fs_save_inmem_curseg() local
2783 mutex_lock(&curseg->curseg_mutex); in __f2fs_save_inmem_curseg()
2784 if (!curseg->inited) in __f2fs_save_inmem_curseg()
2787 if (get_valid_blocks(sbi, curseg->segno, false)) { in __f2fs_save_inmem_curseg()
2788 write_sum_page(sbi, curseg->sum_blk, in __f2fs_save_inmem_curseg()
2789 GET_SUM_BLOCK(sbi, curseg->segno)); in __f2fs_save_inmem_curseg()
2792 __set_test_and_free(sbi, curseg->segno, true); in __f2fs_save_inmem_curseg()
2796 mutex_unlock(&curseg->curseg_mutex); in __f2fs_save_inmem_curseg()
2809 struct curseg_info *curseg = CURSEG_I(sbi, type); in __f2fs_restore_inmem_curseg() local
2811 mutex_lock(&curseg->curseg_mutex); in __f2fs_restore_inmem_curseg()
2812 if (!curseg->inited) in __f2fs_restore_inmem_curseg()
2814 if (get_valid_blocks(sbi, curseg->segno, false)) in __f2fs_restore_inmem_curseg()
2818 __set_test_and_inuse(sbi, curseg->segno); in __f2fs_restore_inmem_curseg()
2821 mutex_unlock(&curseg->curseg_mutex); in __f2fs_restore_inmem_curseg()
2835 struct curseg_info *curseg = CURSEG_I(sbi, type); in get_ssr_segment() local
2838 unsigned short seg_type = curseg->seg_type; in get_ssr_segment()
2846 curseg->next_segno = segno; in get_ssr_segment()
2873 curseg->next_segno = segno; in get_ssr_segment()
2882 curseg->next_segno = segno; in get_ssr_segment()
2896 struct curseg_info *curseg = CURSEG_I(sbi, type); in allocate_segment_by_default() local
2901 curseg->seg_type == CURSEG_WARM_NODE) in allocate_segment_by_default()
2903 else if (curseg->alloc_type == LFS && in allocate_segment_by_default()
2904 is_next_segment_free(sbi, curseg, type) && in allocate_segment_by_default()
2913 stat_inc_seg_type(sbi, curseg); in allocate_segment_by_default()
2919 struct curseg_info *curseg = CURSEG_I(sbi, type); in f2fs_allocate_segment_for_resize() local
2923 mutex_lock(&curseg->curseg_mutex); in f2fs_allocate_segment_for_resize()
2935 stat_inc_seg_type(sbi, curseg); in f2fs_allocate_segment_for_resize()
2941 if (segno != curseg->segno) in f2fs_allocate_segment_for_resize()
2943 type, segno, curseg->segno); in f2fs_allocate_segment_for_resize()
2945 mutex_unlock(&curseg->curseg_mutex); in f2fs_allocate_segment_for_resize()
2952 struct curseg_info *curseg = CURSEG_I(sbi, type); in __allocate_new_segment() local
2955 if (!curseg->inited) in __allocate_new_segment()
2958 if (force || curseg->next_blkoff || in __allocate_new_segment()
2959 get_valid_blocks(sbi, curseg->segno, new_sec)) in __allocate_new_segment()
2962 if (!get_ckpt_valid_blocks(sbi, curseg->segno, new_sec)) in __allocate_new_segment()
2965 old_segno = curseg->segno; in __allocate_new_segment()
3163 struct curseg_info *curseg) in __has_curseg_space() argument
3165 return curseg->next_blkoff < f2fs_usable_blks_in_seg(sbi, in __has_curseg_space()
3166 curseg->segno); in __has_curseg_space()
3389 struct curseg_info *curseg = CURSEG_I(sbi, type); in f2fs_allocate_data_block() local
3396 mutex_lock(&curseg->curseg_mutex); in f2fs_allocate_data_block()
3405 *new_blkaddr = NEXT_FREE_BLKADDR(sbi, curseg); in f2fs_allocate_data_block()
3407 f2fs_bug_on(sbi, curseg->next_blkoff >= sbi->blocks_per_seg); in f2fs_allocate_data_block()
3418 __refresh_next_blkoff(sbi, curseg); in f2fs_allocate_data_block()
3420 stat_inc_block_count(sbi, curseg); in f2fs_allocate_data_block()
3438 if (!__has_curseg_space(sbi, curseg)) { in f2fs_allocate_data_block()
3459 fill_node_footer_blkaddr(page, NEXT_FREE_BLKADDR(sbi, curseg)); in f2fs_allocate_data_block()
3478 mutex_unlock(&curseg->curseg_mutex); in f2fs_allocate_data_block()
3656 struct curseg_info *curseg; in f2fs_do_replace_block() local
3688 curseg = CURSEG_I(sbi, type); in f2fs_do_replace_block()
3690 mutex_lock(&curseg->curseg_mutex); in f2fs_do_replace_block()
3693 old_cursegno = curseg->segno; in f2fs_do_replace_block()
3694 old_blkoff = curseg->next_blkoff; in f2fs_do_replace_block()
3695 old_alloc_type = curseg->alloc_type; in f2fs_do_replace_block()
3698 if (segno != curseg->segno) { in f2fs_do_replace_block()
3699 curseg->next_segno = segno; in f2fs_do_replace_block()
3703 curseg->next_blkoff = GET_BLKOFF_FROM_SEG0(sbi, new_blkaddr); in f2fs_do_replace_block()
3726 if (old_cursegno != curseg->segno) { in f2fs_do_replace_block()
3727 curseg->next_segno = old_cursegno; in f2fs_do_replace_block()
3730 curseg->next_blkoff = old_blkoff; in f2fs_do_replace_block()
3731 curseg->alloc_type = old_alloc_type; in f2fs_do_replace_block()
3735 mutex_unlock(&curseg->curseg_mutex); in f2fs_do_replace_block()
3875 struct curseg_info *curseg; in read_normal_summaries() local
3925 curseg = CURSEG_I(sbi, type); in read_normal_summaries()
3926 mutex_lock(&curseg->curseg_mutex); in read_normal_summaries()
3929 down_write(&curseg->journal_rwsem); in read_normal_summaries()
3930 memcpy(curseg->journal, &sum->journal, SUM_JOURNAL_SIZE); in read_normal_summaries()
3931 up_write(&curseg->journal_rwsem); in read_normal_summaries()
3933 memcpy(curseg->sum_blk->entries, sum->entries, SUM_ENTRY_SIZE); in read_normal_summaries()
3934 memcpy(&curseg->sum_blk->footer, &sum->footer, SUM_FOOTER_SIZE); in read_normal_summaries()
3935 curseg->next_segno = segno; in read_normal_summaries()
3937 curseg->alloc_type = ckpt->alloc_type[type]; in read_normal_summaries()
3938 curseg->next_blkoff = blk_off; in read_normal_summaries()
3939 mutex_unlock(&curseg->curseg_mutex); in read_normal_summaries()
4185 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA); in remove_sits_in_journal() local
4186 struct f2fs_journal *journal = curseg->journal; in remove_sits_in_journal()
4189 down_write(&curseg->journal_rwsem); in remove_sits_in_journal()
4201 up_write(&curseg->journal_rwsem); in remove_sits_in_journal()
4212 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA); in f2fs_flush_sit_entries() local
4213 struct f2fs_journal *journal = curseg->journal; in f2fs_flush_sit_entries()
4257 down_write(&curseg->journal_rwsem); in f2fs_flush_sit_entries()
4304 up_write(&curseg->journal_rwsem); in f2fs_flush_sit_entries()
4506 struct curseg_info *curseg = CURSEG_I(sbi, CURSEG_COLD_DATA); in build_sit_entries() local
4507 struct f2fs_journal *journal = curseg->journal; in build_sit_entries()
4568 down_read(&curseg->journal_rwsem); in build_sit_entries()
4617 up_read(&curseg->journal_rwsem); in build_sit_entries()
4763 struct curseg_info *curseg = CURSEG_I(sbi, i); in sanity_check_curseg() local
4764 struct seg_entry *se = get_seg_entry(sbi, curseg->segno); in sanity_check_curseg()
4765 unsigned int blkofs = curseg->next_blkoff; in sanity_check_curseg()
4771 sanity_check_seg_type(sbi, curseg->seg_type); in sanity_check_curseg()
4773 if (curseg->alloc_type != LFS && curseg->alloc_type != SSR) { in sanity_check_curseg()
4776 curseg->alloc_type); in sanity_check_curseg()
4783 if (curseg->alloc_type == SSR) in sanity_check_curseg()
4792 i, curseg->segno, curseg->alloc_type, in sanity_check_curseg()
4793 curseg->next_blkoff, blkofs); in sanity_check_curseg()