Lines Matching defs:sbi

24 	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
34 if (!f2fs_is_valid_blkaddr(sbi, ei.blk, DATA_GENERIC_ENHANCE) ||
35 !f2fs_is_valid_blkaddr(sbi, ei.blk + ei.len - 1,
37 f2fs_warn(sbi, "%s: inode (ino=%lx) extent info [%u, %u, %u] is incorrect, run fsck to fix",
46 for (devi = 0; devi < sbi->s_ndevs; devi++) {
52 f2fs_warn(sbi,
59 f2fs_warn(sbi,
68 f2fs_warn(sbi, "%s: device alias inode (ino=%lx)'s extent info "
290 static struct extent_node *__attach_extent_node(struct f2fs_sb_info *sbi,
295 struct extent_tree_info *eti = &sbi->extent_tree[et->type];
298 en = f2fs_kmem_cache_alloc(extent_node_slab, GFP_ATOMIC, false, sbi);
313 static void __detach_extent_node(struct f2fs_sb_info *sbi,
316 struct extent_tree_info *eti = &sbi->extent_tree[et->type];
333 static void __release_extent_node(struct f2fs_sb_info *sbi,
336 struct extent_tree_info *eti = &sbi->extent_tree[et->type];
339 f2fs_bug_on(sbi, list_empty(&en->list));
343 __detach_extent_node(sbi, et, en);
349 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
350 struct extent_tree_info *eti = &sbi->extent_tree[type];
381 static unsigned int __free_extent_tree(struct f2fs_sb_info *sbi,
393 __release_extent_node(sbi, et, en);
412 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
413 struct extent_tree_info *eti = &sbi->extent_tree[EX_READ];
443 en = __attach_extent_node(sbi, et, &ei, NULL,
455 if (f2fs_cp_error(sbi)) {
483 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
484 struct extent_tree_info *eti = &sbi->extent_tree[type];
501 stat_inc_largest_node_hit(sbi);
515 stat_inc_cached_node_hit(sbi, type);
517 stat_inc_rbtree_node_hit(sbi, type);
528 stat_inc_total_hit(sbi, type);
538 static struct extent_node *__try_merge_extent_node(struct f2fs_sb_info *sbi,
543 struct extent_tree_info *eti = &sbi->extent_tree[et->type];
558 __release_extent_node(sbi, et, prev_ex);
577 static struct extent_node *__insert_extent_tree(struct f2fs_sb_info *sbi,
583 struct extent_tree_info *eti = &sbi->extent_tree[et->type];
607 f2fs_bug_on(sbi, 1);
612 en = __attach_extent_node(sbi, et, ei, parent, p, leftmost);
629 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
641 node_cnt += __free_extent_tree(sbi, et, nr_shrink);
645 f2fs_bug_on(sbi, atomic_read(&et->node_cnt));
653 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
710 f2fs_bug_on(sbi, fofs >= org_end);
722 sbi->max_read_extent_count))) {
729 en1 = __insert_extent_tree(sbi, et, &ei,
753 __release_extent_node(sbi, et, en);
776 if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en))
777 __insert_extent_tree(sbi, et, &ei,
801 if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en))
802 __insert_extent_tree(sbi, et, &ei,
819 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
847 if (!__try_merge_extent_node(sbi, et, &ei, prev_en, next_en))
848 __insert_extent_tree(sbi, et, &ei,
855 static unsigned long long __calculate_block_age(struct f2fs_sb_info *sbi,
861 unsigned int weight = sbi->last_age_weight;
878 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
881 atomic64_read(&sbi->allocated_data_blocks);
903 ei->age = __calculate_block_age(sbi, cur_age, tei.age);
911 f2fs_bug_on(sbi, blkaddr == NULL_ADDR);
918 !f2fs_is_valid_blkaddr(sbi, blkaddr, DATA_GENERIC_ENHANCE))
953 static unsigned int __shrink_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink,
956 struct extent_tree_info *eti = &sbi->extent_tree[type];
972 node_cnt += __free_extent_tree(sbi, et,
1016 __detach_extent_node(sbi, et, en);
1027 trace_f2fs_shrink_extent_tree(sbi, node_cnt, tree_cnt, type);
1073 unsigned int f2fs_shrink_read_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink)
1075 if (!test_opt(sbi, READ_EXTENT_CACHE))
1078 return __shrink_extent_tree(sbi, nr_shrink, EX_READ);
1110 unsigned int f2fs_shrink_age_extent_tree(struct f2fs_sb_info *sbi, int nr_shrink)
1112 if (!test_opt(sbi, AGE_EXTENT_CACHE))
1115 return __shrink_extent_tree(sbi, nr_shrink, EX_BLOCK_AGE);
1156 struct f2fs_sb_info *sbi = F2FS_I_SB(inode);
1157 struct extent_tree_info *eti = &sbi->extent_tree[type];
1178 f2fs_bug_on(sbi, atomic_read(&et->node_cnt));
1207 void f2fs_init_extent_cache_info(struct f2fs_sb_info *sbi)
1209 __init_extent_tree_info(&sbi->extent_tree[EX_READ]);
1210 __init_extent_tree_info(&sbi->extent_tree[EX_BLOCK_AGE]);
1213 atomic64_set(&sbi->allocated_data_blocks, 0);
1214 sbi->hot_data_age_threshold = DEF_HOT_DATA_AGE_THRESHOLD;
1215 sbi->warm_data_age_threshold = DEF_WARM_DATA_AGE_THRESHOLD;
1216 sbi->last_age_weight = LAST_AGE_WEIGHT;
1217 sbi->max_read_extent_count = DEF_MAX_READ_EXTENT_COUNT;