Lines Matching refs:segno
22 #define GET_L2R_SEGNO(free_i, segno) ((segno) - (free_i)->start_segno) argument
23 #define GET_R2L_SEGNO(free_i, segno) ((segno) + (free_i)->start_segno) argument
40 (((seg) == CURSEG_I(sbi, CURSEG_HOT_DATA)->segno) || \
41 ((seg) == CURSEG_I(sbi, CURSEG_WARM_DATA)->segno) || \
42 ((seg) == CURSEG_I(sbi, CURSEG_COLD_DATA)->segno) || \
43 ((seg) == CURSEG_I(sbi, CURSEG_HOT_NODE)->segno) || \
44 ((seg) == CURSEG_I(sbi, CURSEG_WARM_NODE)->segno) || \
45 ((seg) == CURSEG_I(sbi, CURSEG_COLD_NODE)->segno) || \
46 ((seg) == CURSEG_I(sbi, CURSEG_COLD_DATA_PINNED)->segno) || \
47 ((seg) == CURSEG_I(sbi, CURSEG_ALL_DATA_ATGC)->segno))
50 (((secno) == CURSEG_I(sbi, CURSEG_HOT_DATA)->segno / \
52 ((secno) == CURSEG_I(sbi, CURSEG_WARM_DATA)->segno / \
54 ((secno) == CURSEG_I(sbi, CURSEG_COLD_DATA)->segno / \
56 ((secno) == CURSEG_I(sbi, CURSEG_HOT_NODE)->segno / \
58 ((secno) == CURSEG_I(sbi, CURSEG_WARM_NODE)->segno / \
60 ((secno) == CURSEG_I(sbi, CURSEG_COLD_NODE)->segno / \
62 ((secno) == CURSEG_I(sbi, CURSEG_COLD_DATA_PINNED)->segno / \
64 ((secno) == CURSEG_I(sbi, CURSEG_ALL_DATA_ATGC)->segno / \
86 #define START_BLOCK(sbi, segno) (SEG0_BLKADDR(sbi) + \ argument
87 (GET_R2L_SEGNO(FREE_I(sbi), segno) << (sbi)->log_blocks_per_seg))
90 (START_BLOCK(sbi, (curseg)->segno) + (curseg)->next_blkoff)
110 #define GET_SEC_FROM_SEG(sbi, segno) \ argument
111 (((segno) == -1) ? -1: (segno) / (sbi)->segs_per_sec)
116 #define GET_ZONE_FROM_SEG(sbi, segno) \ argument
117 GET_ZONE_FROM_SEC(sbi, GET_SEC_FROM_SEG(sbi, segno))
119 #define GET_SUM_BLOCK(sbi, segno) \ argument
120 ((sbi)->sm_info->ssa_blkaddr + (segno))
125 #define SIT_ENTRY_OFFSET(sit_i, segno) \ argument
126 ((segno) % (sit_i)->sents_per_block)
127 #define SIT_BLOCK_OFFSET(segno) \ argument
128 ((segno) / SIT_ENTRY_PER_BLOCK)
129 #define START_SEGNO(segno) \ argument
130 (SIT_BLOCK_OFFSET(segno) * SIT_ENTRY_PER_BLOCK)
310 unsigned int segno; /* current segment number */ member
333 unsigned int segno) in get_seg_entry() argument
336 return &sit_i->sentries[segno]; in get_seg_entry()
340 unsigned int segno) in get_sec_entry() argument
343 return &sit_i->sec_entries[GET_SEC_FROM_SEG(sbi, segno)]; in get_sec_entry()
347 unsigned int segno, bool use_section) in get_valid_blocks() argument
354 return get_sec_entry(sbi, segno)->valid_blocks; in get_valid_blocks()
356 return get_seg_entry(sbi, segno)->valid_blocks; in get_valid_blocks()
360 unsigned int segno, bool use_section) in get_ckpt_valid_blocks() argument
363 unsigned int start_segno = START_SEGNO(segno); in get_ckpt_valid_blocks()
374 return get_seg_entry(sbi, segno)->ckpt_valid_blocks; in get_ckpt_valid_blocks()
430 unsigned int max, unsigned int segno) in find_next_inuse() argument
434 ret = find_next_bit(free_i->free_segmap, max, segno); in find_next_inuse()
439 static inline void __set_free(struct f2fs_sb_info *sbi, unsigned int segno) in __set_free() argument
442 unsigned int secno = GET_SEC_FROM_SEG(sbi, segno); in __set_free()
445 unsigned int usable_segs = f2fs_usable_segs_in_sec(sbi, segno); in __set_free()
448 clear_bit(segno, free_i->free_segmap); in __set_free()
461 unsigned int segno) in __set_inuse() argument
464 unsigned int secno = GET_SEC_FROM_SEG(sbi, segno); in __set_inuse()
466 set_bit(segno, free_i->free_segmap); in __set_inuse()
473 unsigned int segno, bool inmem) in __set_test_and_free() argument
476 unsigned int secno = GET_SEC_FROM_SEG(sbi, segno); in __set_test_and_free()
479 unsigned int usable_segs = f2fs_usable_segs_in_sec(sbi, segno); in __set_test_and_free()
482 if (test_and_clear_bit(segno, free_i->free_segmap)) { in __set_test_and_free()
499 unsigned int segno) in __set_test_and_inuse() argument
502 unsigned int secno = GET_SEC_FROM_SEG(sbi, segno); in __set_test_and_inuse()
505 if (!test_and_set_bit(segno, free_i->free_segmap)) { in __set_test_and_inuse()
576 unsigned int segno, left_blocks; in has_curseg_enough_space() local
581 segno = CURSEG_I(sbi, i)->segno; in has_curseg_enough_space()
582 left_blocks = f2fs_usable_blks_in_seg(sbi, segno) - in has_curseg_enough_space()
583 get_seg_entry(sbi, segno)->ckpt_valid_blocks; in has_curseg_enough_space()
590 segno = CURSEG_I(sbi, CURSEG_HOT_DATA)->segno; in has_curseg_enough_space()
591 left_blocks = f2fs_usable_blks_in_seg(sbi, segno) - in has_curseg_enough_space()
592 get_seg_entry(sbi, segno)->ckpt_valid_blocks; in has_curseg_enough_space()
735 return curseg->segno; in curseg_segno()
746 unsigned int segno) in valid_main_segno() argument
748 return segno <= (MAIN_SEGS(sbi) - 1); in valid_main_segno()
766 int segno, struct f2fs_sit_entry *raw_sit) in check_block_count() argument
771 unsigned int usable_blks_per_seg = f2fs_usable_blks_in_seg(sbi, segno); in check_block_count()
803 || !valid_main_segno(sbi, segno))) { in check_block_count()
805 GET_SIT_VBLOCKS(raw_sit), segno); in check_block_count()