Lines Matching refs:sbi
47 static unsigned char *__struct_ptr(struct f2fs_sb_info *sbi, int struct_type) in __struct_ptr() argument
50 return (unsigned char *)sbi->gc_thread; in __struct_ptr()
52 return (unsigned char *)SM_I(sbi); in __struct_ptr()
54 return (unsigned char *)SM_I(sbi)->dcc_info; in __struct_ptr()
56 return (unsigned char *)NM_I(sbi); in __struct_ptr()
58 return (unsigned char *)sbi; in __struct_ptr()
62 return (unsigned char *)&F2FS_OPTION(sbi).fault_info; in __struct_ptr()
68 struct f2fs_sb_info *sbi, char *buf) in dirty_segments_show() argument
71 (unsigned long long)(dirty_segments(sbi))); in dirty_segments_show()
75 struct f2fs_sb_info *sbi, char *buf) in lifetime_write_kbytes_show() argument
77 struct super_block *sb = sbi->sb; in lifetime_write_kbytes_show()
83 (unsigned long long)(sbi->kbytes_written + in lifetime_write_kbytes_show()
84 BD_PART_WRITTEN(sbi))); in lifetime_write_kbytes_show()
88 struct f2fs_sb_info *sbi, char *buf) in features_show() argument
90 struct super_block *sb = sbi->sb; in features_show()
128 struct f2fs_sb_info *sbi, char *buf) in current_reserved_blocks_show() argument
130 return snprintf(buf, PAGE_SIZE, "%u\n", sbi->current_reserved_blocks); in current_reserved_blocks_show()
134 struct f2fs_sb_info *sbi, char *buf) in f2fs_sbi_show() argument
139 ptr = __struct_ptr(sbi, a->struct_type); in f2fs_sbi_show()
145 sbi->raw_super->extension_list; in f2fs_sbi_show()
146 int cold_count = le32_to_cpu(sbi->raw_super->extension_count); in f2fs_sbi_show()
147 int hot_count = sbi->raw_super->hot_ext_count; in f2fs_sbi_show()
170 struct f2fs_sb_info *sbi, in __sbi_store() argument
178 ptr = __struct_ptr(sbi, a->struct_type); in __sbi_store()
203 down_write(&sbi->sb_lock); in __sbi_store()
205 ret = f2fs_update_extension_list(sbi, name, hot, set); in __sbi_store()
209 ret = f2fs_commit_super(sbi, false); in __sbi_store()
211 f2fs_update_extension_list(sbi, name, hot, !set); in __sbi_store()
213 up_write(&sbi->sb_lock); in __sbi_store()
227 spin_lock(&sbi->stat_lock); in __sbi_store()
228 if (t > (unsigned long)(sbi->user_block_count - in __sbi_store()
229 F2FS_OPTION(sbi).root_reserved_blocks)) { in __sbi_store()
230 spin_unlock(&sbi->stat_lock); in __sbi_store()
234 sbi->current_reserved_blocks = min(sbi->reserved_blocks, in __sbi_store()
235 sbi->user_block_count - valid_user_blocks(sbi)); in __sbi_store()
236 spin_unlock(&sbi->stat_lock); in __sbi_store()
254 sbi->gc_mode = GC_URGENT; in __sbi_store()
255 if (sbi->gc_thread) { in __sbi_store()
256 sbi->gc_thread->gc_wake = 1; in __sbi_store()
258 &sbi->gc_thread->gc_wait_queue_head); in __sbi_store()
259 wake_up_discard_thread(sbi, true); in __sbi_store()
262 sbi->gc_mode = GC_NORMAL; in __sbi_store()
268 sbi->gc_mode = GC_IDLE_CB; in __sbi_store()
270 sbi->gc_mode = GC_IDLE_GREEDY; in __sbi_store()
272 sbi->gc_mode = GC_NORMAL; in __sbi_store()
279 f2fs_reset_iostat(sbi); in __sbi_store()
284 struct f2fs_sb_info *sbi, in f2fs_sbi_store() argument
292 if (!down_read_trylock(&sbi->sb->s_umount)) in f2fs_sbi_store()
295 ret = __sbi_store(a, sbi, buf, count); in f2fs_sbi_store()
297 up_read(&sbi->sb->s_umount); in f2fs_sbi_store()
305 struct f2fs_sb_info *sbi = container_of(kobj, struct f2fs_sb_info, in f2fs_attr_show() local
309 return a->show ? a->show(a, sbi, buf) : 0; in f2fs_attr_show()
315 struct f2fs_sb_info *sbi = container_of(kobj, struct f2fs_sb_info, in f2fs_attr_store() local
319 return a->store ? a->store(a, sbi, buf, len) : 0; in f2fs_attr_store()
324 struct f2fs_sb_info *sbi = container_of(kobj, struct f2fs_sb_info, in f2fs_sb_release() local
326 complete(&sbi->s_kobj_unregister); in f2fs_sb_release()
343 struct f2fs_sb_info *sbi, char *buf) in f2fs_feature_show() argument
529 struct f2fs_sb_info *sbi = F2FS_SB(sb); in segment_info_seq_show() local
531 le32_to_cpu(sbi->raw_super->segment_count_main); in segment_info_seq_show()
538 struct seg_entry *se = get_seg_entry(sbi, i); in segment_info_seq_show()
543 get_valid_blocks(sbi, i, false)); in segment_info_seq_show()
557 struct f2fs_sb_info *sbi = F2FS_SB(sb); in segment_bits_seq_show() local
559 le32_to_cpu(sbi->raw_super->segment_count_main); in segment_bits_seq_show()
566 struct seg_entry *se = get_seg_entry(sbi, i); in segment_bits_seq_show()
570 get_valid_blocks(sbi, i, false)); in segment_bits_seq_show()
582 struct f2fs_sb_info *sbi = F2FS_SB(sb); in iostat_info_seq_show() local
585 if (!sbi->iostat_enable) in iostat_info_seq_show()
592 sbi->write_iostat[APP_BUFFERED_IO]); in iostat_info_seq_show()
594 sbi->write_iostat[APP_DIRECT_IO]); in iostat_info_seq_show()
596 sbi->write_iostat[APP_MAPPED_IO]); in iostat_info_seq_show()
600 sbi->write_iostat[FS_DATA_IO]); in iostat_info_seq_show()
602 sbi->write_iostat[FS_NODE_IO]); in iostat_info_seq_show()
604 sbi->write_iostat[FS_META_IO]); in iostat_info_seq_show()
606 sbi->write_iostat[FS_GC_DATA_IO]); in iostat_info_seq_show()
608 sbi->write_iostat[FS_GC_NODE_IO]); in iostat_info_seq_show()
610 sbi->write_iostat[FS_CP_DATA_IO]); in iostat_info_seq_show()
612 sbi->write_iostat[FS_CP_NODE_IO]); in iostat_info_seq_show()
614 sbi->write_iostat[FS_CP_META_IO]); in iostat_info_seq_show()
616 sbi->write_iostat[FS_DISCARD]); in iostat_info_seq_show()
625 struct f2fs_sb_info *sbi = F2FS_SB(sb); in victim_bits_seq_show() local
626 struct dirty_seglist_info *dirty_i = DIRTY_I(sbi); in victim_bits_seq_show()
631 for (i = 0; i < MAIN_SECS(sbi); i++) { in victim_bits_seq_show()
635 if ((i % 10) == 9 || i == (MAIN_SECS(sbi) - 1)) in victim_bits_seq_show()
670 int f2fs_register_sysfs(struct f2fs_sb_info *sbi) in f2fs_register_sysfs() argument
672 struct super_block *sb = sbi->sb; in f2fs_register_sysfs()
675 sbi->s_kobj.kset = &f2fs_kset; in f2fs_register_sysfs()
676 init_completion(&sbi->s_kobj_unregister); in f2fs_register_sysfs()
677 err = kobject_init_and_add(&sbi->s_kobj, &f2fs_sb_ktype, NULL, in f2fs_register_sysfs()
683 sbi->s_proc = proc_mkdir(sb->s_id, f2fs_proc_root); in f2fs_register_sysfs()
685 if (sbi->s_proc) { in f2fs_register_sysfs()
686 proc_create_single_data("segment_info", S_IRUGO, sbi->s_proc, in f2fs_register_sysfs()
688 proc_create_single_data("segment_bits", S_IRUGO, sbi->s_proc, in f2fs_register_sysfs()
690 proc_create_single_data("iostat_info", S_IRUGO, sbi->s_proc, in f2fs_register_sysfs()
692 proc_create_single_data("victim_bits", S_IRUGO, sbi->s_proc, in f2fs_register_sysfs()
698 void f2fs_unregister_sysfs(struct f2fs_sb_info *sbi) in f2fs_unregister_sysfs() argument
700 if (sbi->s_proc) { in f2fs_unregister_sysfs()
701 remove_proc_entry("iostat_info", sbi->s_proc); in f2fs_unregister_sysfs()
702 remove_proc_entry("segment_info", sbi->s_proc); in f2fs_unregister_sysfs()
703 remove_proc_entry("segment_bits", sbi->s_proc); in f2fs_unregister_sysfs()
704 remove_proc_entry("victim_bits", sbi->s_proc); in f2fs_unregister_sysfs()
705 remove_proc_entry(sbi->sb->s_id, f2fs_proc_root); in f2fs_unregister_sysfs()
707 kobject_del(&sbi->s_kobj); in f2fs_unregister_sysfs()