Lines Matching refs:sbi

26 #define f2fs_bug_on(sbi, condition)	BUG_ON(condition)  argument
29 #define f2fs_bug_on(sbi, condition) \ argument
33 set_sbi_flag(sbi, SBI_NEED_FSCK); \
58 #define clear_opt(sbi, option) (sbi->mount_opt.opt &= ~F2FS_MOUNT_##option) argument
59 #define set_opt(sbi, option) (sbi->mount_opt.opt |= F2FS_MOUNT_##option) argument
60 #define test_opt(sbi, option) (sbi->mount_opt.opt & F2FS_MOUNT_##option) argument
123 #define BATCHED_TRIM_SEGMENTS(sbi) \ argument
124 (SM_I(sbi)->trim_sections * (sbi)->segs_per_sec)
125 #define BATCHED_TRIM_BLOCKS(sbi) \ argument
126 (BATCHED_TRIM_SEGMENTS(sbi) << (sbi)->log_blocks_per_seg)
681 struct f2fs_sb_info *sbi; /* f2fs_sb_info pointer */ member
691 struct f2fs_sb_info *sbi; /* f2fs superblock */ member
855 static inline struct f2fs_super_block *F2FS_RAW_SUPER(struct f2fs_sb_info *sbi) in F2FS_RAW_SUPER() argument
857 return (struct f2fs_super_block *)(sbi->raw_super); in F2FS_RAW_SUPER()
860 static inline struct f2fs_checkpoint *F2FS_CKPT(struct f2fs_sb_info *sbi) in F2FS_CKPT() argument
862 return (struct f2fs_checkpoint *)(sbi->ckpt); in F2FS_CKPT()
875 static inline struct f2fs_nm_info *NM_I(struct f2fs_sb_info *sbi) in NM_I() argument
877 return (struct f2fs_nm_info *)(sbi->nm_info); in NM_I()
880 static inline struct f2fs_sm_info *SM_I(struct f2fs_sb_info *sbi) in SM_I() argument
882 return (struct f2fs_sm_info *)(sbi->sm_info); in SM_I()
885 static inline struct sit_info *SIT_I(struct f2fs_sb_info *sbi) in SIT_I() argument
887 return (struct sit_info *)(SM_I(sbi)->sit_info); in SIT_I()
890 static inline struct free_segmap_info *FREE_I(struct f2fs_sb_info *sbi) in FREE_I() argument
892 return (struct free_segmap_info *)(SM_I(sbi)->free_info); in FREE_I()
895 static inline struct dirty_seglist_info *DIRTY_I(struct f2fs_sb_info *sbi) in DIRTY_I() argument
897 return (struct dirty_seglist_info *)(SM_I(sbi)->dirty_info); in DIRTY_I()
900 static inline struct address_space *META_MAPPING(struct f2fs_sb_info *sbi) in META_MAPPING() argument
902 return sbi->meta_inode->i_mapping; in META_MAPPING()
905 static inline struct address_space *NODE_MAPPING(struct f2fs_sb_info *sbi) in NODE_MAPPING() argument
907 return sbi->node_inode->i_mapping; in NODE_MAPPING()
910 static inline bool is_sbi_flag_set(struct f2fs_sb_info *sbi, unsigned int type) in is_sbi_flag_set() argument
912 return sbi->s_flag & (0x01 << type); in is_sbi_flag_set()
915 static inline void set_sbi_flag(struct f2fs_sb_info *sbi, unsigned int type) in set_sbi_flag() argument
917 sbi->s_flag |= (0x01 << type); in set_sbi_flag()
920 static inline void clear_sbi_flag(struct f2fs_sb_info *sbi, unsigned int type) in clear_sbi_flag() argument
922 sbi->s_flag &= ~(0x01 << type); in clear_sbi_flag()
950 static inline void f2fs_lock_op(struct f2fs_sb_info *sbi) in f2fs_lock_op() argument
952 down_read(&sbi->cp_rwsem); in f2fs_lock_op()
955 static inline void f2fs_unlock_op(struct f2fs_sb_info *sbi) in f2fs_unlock_op() argument
957 up_read(&sbi->cp_rwsem); in f2fs_unlock_op()
960 static inline void f2fs_lock_all(struct f2fs_sb_info *sbi) in f2fs_lock_all() argument
962 f2fs_down_write(&sbi->cp_rwsem, &sbi->cp_mutex); in f2fs_lock_all()
965 static inline void f2fs_unlock_all(struct f2fs_sb_info *sbi) in f2fs_unlock_all() argument
967 up_write(&sbi->cp_rwsem); in f2fs_unlock_all()
970 static inline int __get_cp_reason(struct f2fs_sb_info *sbi) in __get_cp_reason() argument
974 if (test_opt(sbi, FASTBOOT)) in __get_cp_reason()
976 if (is_sbi_flag_set(sbi, SBI_IS_CLOSE)) in __get_cp_reason()
986 static inline bool __exist_node_summaries(struct f2fs_sb_info *sbi) in __exist_node_summaries() argument
988 return (is_set_ckpt_flags(F2FS_CKPT(sbi), CP_UMOUNT_FLAG) || in __exist_node_summaries()
989 is_set_ckpt_flags(F2FS_CKPT(sbi), CP_FASTBOOT_FLAG)); in __exist_node_summaries()
995 static inline int check_nid_range(struct f2fs_sb_info *sbi, nid_t nid) in check_nid_range() argument
997 if (unlikely(nid < F2FS_ROOT_INO(sbi))) in check_nid_range()
999 if (unlikely(nid >= NM_I(sbi)->max_nid)) in check_nid_range()
1022 static inline bool inc_valid_block_count(struct f2fs_sb_info *sbi, in inc_valid_block_count() argument
1027 spin_lock(&sbi->stat_lock); in inc_valid_block_count()
1029 sbi->total_valid_block_count + (block_t)count; in inc_valid_block_count()
1030 if (unlikely(valid_block_count > sbi->user_block_count)) { in inc_valid_block_count()
1031 spin_unlock(&sbi->stat_lock); in inc_valid_block_count()
1035 sbi->total_valid_block_count = valid_block_count; in inc_valid_block_count()
1036 sbi->alloc_valid_block_count += (block_t)count; in inc_valid_block_count()
1037 spin_unlock(&sbi->stat_lock); in inc_valid_block_count()
1041 static inline void dec_valid_block_count(struct f2fs_sb_info *sbi, in dec_valid_block_count() argument
1045 spin_lock(&sbi->stat_lock); in dec_valid_block_count()
1046 f2fs_bug_on(sbi, sbi->total_valid_block_count < (block_t) count); in dec_valid_block_count()
1047 f2fs_bug_on(sbi, inode->i_blocks < count); in dec_valid_block_count()
1049 sbi->total_valid_block_count -= (block_t)count; in dec_valid_block_count()
1050 spin_unlock(&sbi->stat_lock); in dec_valid_block_count()
1053 static inline void inc_page_count(struct f2fs_sb_info *sbi, int count_type) in inc_page_count() argument
1055 atomic_inc(&sbi->nr_pages[count_type]); in inc_page_count()
1056 set_sbi_flag(sbi, SBI_IS_DIRTY); in inc_page_count()
1066 static inline void dec_page_count(struct f2fs_sb_info *sbi, int count_type) in dec_page_count() argument
1068 atomic_dec(&sbi->nr_pages[count_type]); in dec_page_count()
1083 static inline int get_pages(struct f2fs_sb_info *sbi, int count_type) in get_pages() argument
1085 return atomic_read(&sbi->nr_pages[count_type]); in get_pages()
1093 static inline int get_blocktype_secs(struct f2fs_sb_info *sbi, int block_type) in get_blocktype_secs() argument
1095 unsigned int pages_per_sec = sbi->segs_per_sec * in get_blocktype_secs()
1096 (1 << sbi->log_blocks_per_seg); in get_blocktype_secs()
1097 return ((get_pages(sbi, block_type) + pages_per_sec - 1) in get_blocktype_secs()
1098 >> sbi->log_blocks_per_seg) / sbi->segs_per_sec; in get_blocktype_secs()
1101 static inline block_t valid_user_blocks(struct f2fs_sb_info *sbi) in valid_user_blocks() argument
1103 return sbi->total_valid_block_count; in valid_user_blocks()
1106 static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag) in __bitmap_size() argument
1108 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi); in __bitmap_size()
1119 static inline block_t __cp_payload(struct f2fs_sb_info *sbi) in __cp_payload() argument
1121 return le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_payload); in __cp_payload()
1124 static inline void *__bitmap_ptr(struct f2fs_sb_info *sbi, int flag) in __bitmap_ptr() argument
1126 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi); in __bitmap_ptr()
1129 if (__cp_payload(sbi) > 0) { in __bitmap_ptr()
1141 static inline block_t __start_cp_addr(struct f2fs_sb_info *sbi) in __start_cp_addr() argument
1144 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi); in __start_cp_addr()
1147 start_addr = le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_blkaddr); in __start_cp_addr()
1154 start_addr += sbi->blocks_per_seg; in __start_cp_addr()
1159 static inline block_t __start_sum_addr(struct f2fs_sb_info *sbi) in __start_sum_addr() argument
1161 return le32_to_cpu(F2FS_CKPT(sbi)->cp_pack_start_sum); in __start_sum_addr()
1164 static inline bool inc_valid_node_count(struct f2fs_sb_info *sbi, in inc_valid_node_count() argument
1170 spin_lock(&sbi->stat_lock); in inc_valid_node_count()
1172 valid_block_count = sbi->total_valid_block_count + 1; in inc_valid_node_count()
1173 if (unlikely(valid_block_count > sbi->user_block_count)) { in inc_valid_node_count()
1174 spin_unlock(&sbi->stat_lock); in inc_valid_node_count()
1178 valid_node_count = sbi->total_valid_node_count + 1; in inc_valid_node_count()
1179 if (unlikely(valid_node_count > sbi->total_node_count)) { in inc_valid_node_count()
1180 spin_unlock(&sbi->stat_lock); in inc_valid_node_count()
1187 sbi->alloc_valid_block_count++; in inc_valid_node_count()
1188 sbi->total_valid_node_count++; in inc_valid_node_count()
1189 sbi->total_valid_block_count++; in inc_valid_node_count()
1190 spin_unlock(&sbi->stat_lock); in inc_valid_node_count()
1195 static inline void dec_valid_node_count(struct f2fs_sb_info *sbi, in dec_valid_node_count() argument
1198 spin_lock(&sbi->stat_lock); in dec_valid_node_count()
1200 f2fs_bug_on(sbi, !sbi->total_valid_block_count); in dec_valid_node_count()
1201 f2fs_bug_on(sbi, !sbi->total_valid_node_count); in dec_valid_node_count()
1202 f2fs_bug_on(sbi, !inode->i_blocks); in dec_valid_node_count()
1205 sbi->total_valid_node_count--; in dec_valid_node_count()
1206 sbi->total_valid_block_count--; in dec_valid_node_count()
1208 spin_unlock(&sbi->stat_lock); in dec_valid_node_count()
1211 static inline unsigned int valid_node_count(struct f2fs_sb_info *sbi) in valid_node_count() argument
1213 return sbi->total_valid_node_count; in valid_node_count()
1216 static inline void inc_valid_inode_count(struct f2fs_sb_info *sbi) in inc_valid_inode_count() argument
1218 spin_lock(&sbi->stat_lock); in inc_valid_inode_count()
1219 f2fs_bug_on(sbi, sbi->total_valid_inode_count == sbi->total_node_count); in inc_valid_inode_count()
1220 sbi->total_valid_inode_count++; in inc_valid_inode_count()
1221 spin_unlock(&sbi->stat_lock); in inc_valid_inode_count()
1224 static inline void dec_valid_inode_count(struct f2fs_sb_info *sbi) in dec_valid_inode_count() argument
1226 spin_lock(&sbi->stat_lock); in dec_valid_inode_count()
1227 f2fs_bug_on(sbi, !sbi->total_valid_inode_count); in dec_valid_inode_count()
1228 sbi->total_valid_inode_count--; in dec_valid_inode_count()
1229 spin_unlock(&sbi->stat_lock); in dec_valid_inode_count()
1232 static inline unsigned int valid_inode_count(struct f2fs_sb_info *sbi) in valid_inode_count() argument
1234 return sbi->total_valid_inode_count; in valid_inode_count()
1581 static inline bool f2fs_cp_error(struct f2fs_sb_info *sbi) in f2fs_cp_error() argument
1583 return is_set_ckpt_flags(sbi->ckpt, CP_ERROR_FLAG); in f2fs_cp_error()
1586 static inline void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi) in f2fs_stop_checkpoint() argument
1588 set_ckpt_flags(sbi->ckpt, CP_ERROR_FLAG); in f2fs_stop_checkpoint()
1589 sbi->sb->s_flags |= MS_RDONLY; in f2fs_stop_checkpoint()
1875 struct f2fs_sb_info *sbi; member
1906 static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi) in F2FS_STAT() argument
1908 return (struct f2fs_stat_info *)sbi->stat_info; in F2FS_STAT()
1913 #define stat_inc_bggc_count(sbi) ((sbi)->bg_gc++) argument
1914 #define stat_inc_dirty_dir(sbi) ((sbi)->n_dirty_dirs++) argument
1915 #define stat_dec_dirty_dir(sbi) ((sbi)->n_dirty_dirs--) argument
1916 #define stat_inc_total_hit(sbi) (atomic64_inc(&(sbi)->total_hit_ext)) argument
1917 #define stat_inc_rbtree_node_hit(sbi) (atomic64_inc(&(sbi)->read_hit_rbtree)) argument
1918 #define stat_inc_largest_node_hit(sbi) (atomic64_inc(&(sbi)->read_hit_largest)) argument
1919 #define stat_inc_cached_node_hit(sbi) (atomic64_inc(&(sbi)->read_hit_cached)) argument
1950 #define stat_inc_seg_type(sbi, curseg) \ argument
1951 ((sbi)->segment_count[(curseg)->alloc_type]++)
1952 #define stat_inc_block_count(sbi, curseg) \ argument
1953 ((sbi)->block_count[(curseg)->alloc_type]++)
1954 #define stat_inc_inplace_blocks(sbi) \ argument
1955 (atomic_inc(&(sbi)->inplace_count))
1956 #define stat_inc_seg_count(sbi, type, gc_type) \ argument
1958 struct f2fs_stat_info *si = F2FS_STAT(sbi); \
1972 #define stat_inc_data_blk_count(sbi, blks, gc_type) \ argument
1974 struct f2fs_stat_info *si = F2FS_STAT(sbi); \
1980 #define stat_inc_node_blk_count(sbi, blks, gc_type) \ argument
1982 struct f2fs_stat_info *si = F2FS_STAT(sbi); \
1996 #define stat_inc_dirty_dir(sbi) argument
1997 #define stat_dec_dirty_dir(sbi) argument
2000 #define stat_inc_largest_node_hit(sbi) argument
2001 #define stat_inc_cached_node_hit(sbi) argument
2008 #define stat_inc_seg_type(sbi, curseg) argument
2009 #define stat_inc_block_count(sbi, curseg) argument
2010 #define stat_inc_inplace_blocks(sbi) argument
2011 #define stat_inc_seg_count(sbi, type, gc_type) argument
2013 #define stat_inc_data_blk_count(sbi, blks, gc_type) argument
2014 #define stat_inc_node_blk_count(sbi, blks, gc_type) argument
2016 static inline int f2fs_build_stats(struct f2fs_sb_info *sbi) { return 0; } in f2fs_build_stats() argument
2017 static inline void f2fs_destroy_stats(struct f2fs_sb_info *sbi) { } in f2fs_destroy_stats() argument