Lines Matching defs:sbi
295 static inline struct f2fs_super_block *F2FS_RAW_SUPER(struct f2fs_sb_info *sbi)
297 return (struct f2fs_super_block *)(sbi->raw_super);
300 static inline struct f2fs_checkpoint *F2FS_CKPT(struct f2fs_sb_info *sbi)
302 return (struct f2fs_checkpoint *)(sbi->ckpt);
305 static inline struct f2fs_fsck *F2FS_FSCK(struct f2fs_sb_info *sbi)
307 return (struct f2fs_fsck *)(sbi->fsck);
310 static inline struct f2fs_nm_info *NM_I(struct f2fs_sb_info *sbi)
312 return (struct f2fs_nm_info *)(sbi->nm_info);
315 static inline struct f2fs_sm_info *SM_I(struct f2fs_sb_info *sbi)
317 return (struct f2fs_sm_info *)(sbi->sm_info);
320 static inline struct sit_info *SIT_I(struct f2fs_sb_info *sbi)
322 return (struct sit_info *)(SM_I(sbi)->sit_info);
355 static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag)
357 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
368 static inline block_t __cp_payload(struct f2fs_sb_info *sbi)
370 return le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_payload);
373 static inline void *__bitmap_ptr(struct f2fs_sb_info *sbi, int flag)
375 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
391 if (le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_payload) > 0) {
403 static inline block_t __start_cp_addr(struct f2fs_sb_info *sbi)
405 block_t start_addr = le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_blkaddr);
407 if (sbi->cur_cp == 2)
408 start_addr += sbi->blocks_per_seg;
412 static inline block_t __start_sum_addr(struct f2fs_sb_info *sbi)
414 return le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_start_sum);
417 static inline block_t __end_block_addr(struct f2fs_sb_info *sbi)
419 return SM_I(sbi)->main_blkaddr +
420 (le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_main) <<
421 sbi->log_blocks_per_seg);
424 #define BLKS_PER_SEC(sbi) \
425 ((sbi)->segs_per_sec * (sbi)->blocks_per_seg)
426 #define GET_ZONENO_FROM_SEGNO(sbi, segno) \
427 ((segno / sbi->segs_per_sec) / sbi->secs_per_zone)
437 #define MAIN_BLKADDR(sbi) \
438 (SM_I(sbi) ? SM_I(sbi)->main_blkaddr : \
439 le32_to_cpu(F2FS_RAW_SUPER(sbi)->main_blkaddr))
440 #define SEG0_BLKADDR(sbi) \
441 (SM_I(sbi) ? SM_I(sbi)->seg0_blkaddr : \
442 le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment0_blkaddr))
444 #define GET_SUM_BLKADDR(sbi, segno) \
445 ((sbi->sm_info->ssa_blkaddr) + segno)
447 #define GET_SEGOFF_FROM_SEG0(sbi, blk_addr) \
448 ((blk_addr) - SM_I(sbi)->seg0_blkaddr)
450 #define GET_SEGNO_FROM_SEG0(sbi, blk_addr) \
451 (GET_SEGOFF_FROM_SEG0(sbi, blk_addr) >> sbi->log_blocks_per_seg)
453 #define GET_BLKOFF_FROM_SEG0(sbi, blk_addr) \
454 (GET_SEGOFF_FROM_SEG0(sbi, blk_addr) & (sbi->blocks_per_seg - 1))
456 #define GET_SEC_FROM_SEG(sbi, segno) \
457 ((segno) / (sbi)->segs_per_sec)
458 #define GET_SEG_FROM_SEC(sbi, secno) \
459 ((secno) * (sbi)->segs_per_sec)
461 #define FREE_I_START_SEGNO(sbi) \
462 GET_SEGNO_FROM_SEG0(sbi, SM_I(sbi)->main_blkaddr)
463 #define GET_R2L_SEGNO(sbi, segno) (segno + FREE_I_START_SEGNO(sbi))
465 #define MAIN_SEGS(sbi) (SM_I(sbi)->main_segments)
466 #define TOTAL_SEGS(sbi) (SM_I(sbi)->segment_count)
467 #define TOTAL_BLKS(sbi) (TOTAL_SEGS(sbi) << (sbi)->log_blocks_per_seg)
468 #define MAX_BLKADDR(sbi) (SEG0_BLKADDR(sbi) + TOTAL_BLKS(sbi))
470 #define START_BLOCK(sbi, segno) (SM_I(sbi)->main_blkaddr + \
471 ((segno) << sbi->log_blocks_per_seg))
473 #define NEXT_FREE_BLKADDR(sbi, curseg) \
474 (START_BLOCK(sbi, (curseg)->segno) + (curseg)->next_blkoff)
476 #define SIT_BLK_CNT(sbi) \
477 ((MAIN_SEGS(sbi) + SIT_ENTRY_PER_BLOCK - 1) / SIT_ENTRY_PER_BLOCK)
479 static inline struct curseg_info *CURSEG_I(struct f2fs_sb_info *sbi, int type)
481 return (struct curseg_info *)(SM_I(sbi)->curseg_array + type);
484 static inline block_t start_sum_block(struct f2fs_sb_info *sbi)
486 return __start_cp_addr(sbi) + le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_start_sum);
489 static inline block_t sum_blk_addr(struct f2fs_sb_info *sbi, int base, int type)
491 return __start_cp_addr(sbi) + le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_total_block_count)
516 static inline bool IS_VALID_NID(struct f2fs_sb_info *sbi, u32 nid)
519 le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_nat)
520 << (sbi->log_blocks_per_seg - 1)));
523 static inline bool IS_VALID_BLK_ADDR(struct f2fs_sb_info *sbi, u32 addr)
528 if (addr >= le64_to_cpu(F2FS_RAW_SUPER(sbi)->block_count) ||
529 addr < SM_I(sbi)->main_blkaddr) {
545 static inline int IS_CUR_SEGNO(struct f2fs_sb_info *sbi, u32 segno)
550 struct curseg_info *curseg = CURSEG_I(sbi, i);
558 static inline u64 BLKOFF_FROM_MAIN(struct f2fs_sb_info *sbi, u64 blk_addr)
560 ASSERT(blk_addr >= SM_I(sbi)->main_blkaddr);
561 return blk_addr - SM_I(sbi)->main_blkaddr;
564 static inline u32 GET_SEGNO(struct f2fs_sb_info *sbi, u64 blk_addr)
566 return (u32)(BLKOFF_FROM_MAIN(sbi, blk_addr)
567 >> sbi->log_blocks_per_seg);
570 static inline u32 OFFSET_IN_SEG(struct f2fs_sb_info *sbi, u64 blk_addr)
572 return (u32)(BLKOFF_FROM_MAIN(sbi, blk_addr)
573 % (1 << sbi->log_blocks_per_seg));
623 extern int lookup_nat_in_journal(struct f2fs_sb_info *sbi, u32 nid, struct f2fs_nat_entry *ne);
664 static inline int get_encoding(struct f2fs_sb_info *sbi)
666 return le16_to_cpu(F2FS_RAW_SUPER(sbi)->s_encoding);