Re: [f2fs-dev] [PATCH] f2fs: improve sbi status info in debugfs/f2fs/status

From: Chao Yu
Date: Tue Aug 10 2021 - 22:25:19 EST


On 2021/8/10 21:27, Yangtao Li wrote:
Do not use numbers but strings to improve readability.

I'm fine with this, but not sure it's what Jaeguek wants.


Signed-off-by: Yangtao Li <frank.li@xxxxxxxx>
---
fs/f2fs/debug.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)

diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c
index 473ad04d1891..91c0910b0bb7 100644
--- a/fs/f2fs/debug.c
+++ b/fs/f2fs/debug.c
@@ -323,22 +323,40 @@ static void update_mem_info(struct f2fs_sb_info *sbi)
#endif
}
+static char *s_flag[] = {
+ [SBI_IS_DIRTY] = " dirty",

fs_dirty

+ [SBI_IS_CLOSE] = " close",

closing

+ [SBI_NEED_FSCK] = " fsck",

need_fsck

+ [SBI_POR_DOING] = " doing",

recovering

+ [SBI_NEED_SB_WRITE] = " sb_write",

sb_dirty

+ [SBI_NEED_CP] = " cp",

need_cp

+ [SBI_IS_SHUTDOWN] = " shutdown",
+ [SBI_IS_RECOVERED] = " recovered",
+ [SBI_CP_DISABLED] = " cp_disabled",
+ [SBI_CP_DISABLED_QUICK] = " cp_disabled_quick",
+ [SBI_QUOTA_NEED_FLUSH] = " quota_need_flush",
+ [SBI_QUOTA_SKIP_FLUSH] = " quota_skip_flush",
+ [SBI_QUOTA_NEED_REPAIR] = " quota_need_repair",
+ [SBI_IS_RESIZEFS] = " resizefs",
+};
+
static int stat_show(struct seq_file *s, void *v)
{
struct f2fs_stat_info *si;
- int i = 0;
- int j;
+ int i = 0, j = 0;
mutex_lock(&f2fs_stat_mutex);
list_for_each_entry(si, &f2fs_stat_list, stat_list) {
update_general_status(si->sbi);
- seq_printf(s, "\n=====[ partition info(%pg). #%d, %s, CP: %s (sbi: 0x%lx)]=====\n",
+ seq_printf(s, "\n=====[ partition info(%pg). #%d, %s, CP: %s (sbi:",
si->sbi->sb->s_bdev, i++,
f2fs_readonly(si->sbi->sb) ? "RO": "RW",
is_set_ckpt_flags(si->sbi, CP_DISABLED_FLAG) ?
- "Disabled": (f2fs_cp_error(si->sbi) ? "Error": "Good"),
- si->sbi->s_flag);
+ "Disabled" : (f2fs_cp_error(si->sbi) ? "Error" : "Good"));
+ for_each_set_bit(j, &si->sbi->s_flag, 32)
+ seq_puts(s, s_flag[j]);

How about starting to print sb related status in a new line to avoid
extreme long line.

Thanks,

+ seq_puts(s, ") ]=====\n");
seq_printf(s, "[SB: 1] [CP: 2] [SIT: %d] [NAT: %d] ",
si->sit_area_segs, si->nat_area_segs);
seq_printf(s, "[SSA: %d] [MAIN: %d",