Lines Matching defs:sbi

19 static unsigned long __count_nat_entries(struct f2fs_sb_info *sbi)
21 return NM_I(sbi)->nat_cnt[RECLAIMABLE_NAT];
24 static unsigned long __count_free_nids(struct f2fs_sb_info *sbi)
26 long count = NM_I(sbi)->nid_cnt[FREE_NID] - MAX_FREE_NIDS;
31 static unsigned long __count_extent_cache(struct f2fs_sb_info *sbi,
34 struct extent_tree_info *eti = &sbi->extent_tree[type];
43 struct f2fs_sb_info *sbi;
50 sbi = list_entry(p, struct f2fs_sb_info, s_list);
53 if (!mutex_trylock(&sbi->umount_mutex)) {
60 count += __count_extent_cache(sbi, EX_READ);
63 count += __count_extent_cache(sbi, EX_BLOCK_AGE);
66 count += __count_nat_entries(sbi);
69 count += __count_free_nids(sbi);
73 mutex_unlock(&sbi->umount_mutex);
83 struct f2fs_sb_info *sbi;
94 sbi = list_entry(p, struct f2fs_sb_info, s_list);
96 if (sbi->shrinker_run_no == run_no)
100 if (!mutex_trylock(&sbi->umount_mutex)) {
106 sbi->shrinker_run_no = run_no;
109 freed += f2fs_shrink_age_extent_tree(sbi, nr >> 2);
112 freed += f2fs_shrink_read_extent_tree(sbi, nr >> 2);
116 freed += f2fs_try_to_free_nats(sbi, nr - freed);
120 freed += f2fs_try_to_free_nids(sbi, nr - freed);
124 list_move_tail(&sbi->s_list, &f2fs_list);
125 mutex_unlock(&sbi->umount_mutex);
133 void f2fs_join_shrinker(struct f2fs_sb_info *sbi)
136 list_add_tail(&sbi->s_list, &f2fs_list);
140 void f2fs_leave_shrinker(struct f2fs_sb_info *sbi)
142 f2fs_shrink_read_extent_tree(sbi, __count_extent_cache(sbi, EX_READ));
143 f2fs_shrink_age_extent_tree(sbi,
144 __count_extent_cache(sbi, EX_BLOCK_AGE));
147 list_del_init(&sbi->s_list);