Loading fs/f2fs/sysfs.c +46 −0 Original line number Diff line number Diff line Loading @@ -1492,6 +1492,50 @@ static int __maybe_unused discard_plist_seq_show(struct seq_file *seq, return 0; } static int __maybe_unused disk_map_seq_show(struct seq_file *seq, void *offset) { struct super_block *sb = seq->private; struct f2fs_sb_info *sbi = F2FS_SB(sb); int i; seq_printf(seq, "Address Layout : %5luB Block address (# of Segments)\n", F2FS_BLKSIZE); seq_printf(seq, " SB : %12s\n", "0/1024B"); seq_printf(seq, " seg0_blkaddr : 0x%010x\n", SEG0_BLKADDR(sbi)); seq_printf(seq, " Checkpoint : 0x%010x (%10d)\n", le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_blkaddr), 2); seq_printf(seq, " SIT : 0x%010x (%10d)\n", SIT_I(sbi)->sit_base_addr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_sit)); seq_printf(seq, " NAT : 0x%010x (%10d)\n", NM_I(sbi)->nat_blkaddr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_nat)); seq_printf(seq, " SSA : 0x%010x (%10d)\n", SM_I(sbi)->ssa_blkaddr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_ssa)); seq_printf(seq, " Main : 0x%010x (%10d)\n", SM_I(sbi)->main_blkaddr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_main)); seq_printf(seq, " # of Sections : %12d\n", le32_to_cpu(F2FS_RAW_SUPER(sbi)->section_count)); seq_printf(seq, " Segs/Sections : %12d\n", SEGS_PER_SEC(sbi)); seq_printf(seq, " Section size : %12d MB\n", SEGS_PER_SEC(sbi) << 1); if (!f2fs_is_multi_device(sbi)) return 0; seq_puts(seq, "\nDisk Map for multi devices:\n"); for (i = 0; i < sbi->s_ndevs; i++) seq_printf(seq, "Disk:%2d (zoned=%d): 0x%010x - 0x%010x on %s\n", i, bdev_is_zoned(FDEV(i).bdev), FDEV(i).start_blk, FDEV(i).end_blk, FDEV(i).path); return 0; } int __init f2fs_init_sysfs(void) { int ret; Loading Loading @@ -1573,6 +1617,8 @@ int f2fs_register_sysfs(struct f2fs_sb_info *sbi) victim_bits_seq_show, sb); proc_create_single_data("discard_plist_info", 0444, sbi->s_proc, discard_plist_seq_show, sb); proc_create_single_data("disk_map", 0444, sbi->s_proc, disk_map_seq_show, sb); return 0; put_feature_list_kobj: kobject_put(&sbi->s_feature_list_kobj); Loading Loading
fs/f2fs/sysfs.c +46 −0 Original line number Diff line number Diff line Loading @@ -1492,6 +1492,50 @@ static int __maybe_unused discard_plist_seq_show(struct seq_file *seq, return 0; } static int __maybe_unused disk_map_seq_show(struct seq_file *seq, void *offset) { struct super_block *sb = seq->private; struct f2fs_sb_info *sbi = F2FS_SB(sb); int i; seq_printf(seq, "Address Layout : %5luB Block address (# of Segments)\n", F2FS_BLKSIZE); seq_printf(seq, " SB : %12s\n", "0/1024B"); seq_printf(seq, " seg0_blkaddr : 0x%010x\n", SEG0_BLKADDR(sbi)); seq_printf(seq, " Checkpoint : 0x%010x (%10d)\n", le32_to_cpu(F2FS_RAW_SUPER(sbi)->cp_blkaddr), 2); seq_printf(seq, " SIT : 0x%010x (%10d)\n", SIT_I(sbi)->sit_base_addr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_sit)); seq_printf(seq, " NAT : 0x%010x (%10d)\n", NM_I(sbi)->nat_blkaddr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_nat)); seq_printf(seq, " SSA : 0x%010x (%10d)\n", SM_I(sbi)->ssa_blkaddr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_ssa)); seq_printf(seq, " Main : 0x%010x (%10d)\n", SM_I(sbi)->main_blkaddr, le32_to_cpu(F2FS_RAW_SUPER(sbi)->segment_count_main)); seq_printf(seq, " # of Sections : %12d\n", le32_to_cpu(F2FS_RAW_SUPER(sbi)->section_count)); seq_printf(seq, " Segs/Sections : %12d\n", SEGS_PER_SEC(sbi)); seq_printf(seq, " Section size : %12d MB\n", SEGS_PER_SEC(sbi) << 1); if (!f2fs_is_multi_device(sbi)) return 0; seq_puts(seq, "\nDisk Map for multi devices:\n"); for (i = 0; i < sbi->s_ndevs; i++) seq_printf(seq, "Disk:%2d (zoned=%d): 0x%010x - 0x%010x on %s\n", i, bdev_is_zoned(FDEV(i).bdev), FDEV(i).start_blk, FDEV(i).end_blk, FDEV(i).path); return 0; } int __init f2fs_init_sysfs(void) { int ret; Loading Loading @@ -1573,6 +1617,8 @@ int f2fs_register_sysfs(struct f2fs_sb_info *sbi) victim_bits_seq_show, sb); proc_create_single_data("discard_plist_info", 0444, sbi->s_proc, discard_plist_seq_show, sb); proc_create_single_data("disk_map", 0444, sbi->s_proc, disk_map_seq_show, sb); return 0; put_feature_list_kobj: kobject_put(&sbi->s_feature_list_kobj); Loading