From: Chao Yu <chao@kernel.org> To: Yangtao Li <frank.li@vivo.com>, jaegeuk@kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org Subject: Re: [PATCH] f2fs: convert /sys/fs/f2fs/<disk>/stat/sb_status to use string Date: Fri, 13 Aug 2021 22:09:53 +0800 [thread overview] Message-ID: <78fcfb53-66ec-b383-8477-3f25ee13f962@kernel.org> (raw) In-Reply-To: <20210813140119.130321-1-frank.li@vivo.com> On 2021/8/13 22:01, Yangtao Li wrote: > Do not use numbers but strings to improve readability when flag is set. This breaks output rule of sysfs entry, see below link: https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg19001.html Thanks, > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > This patch is based on [v2] f2fs: improve sbi status info in debugfs/f2fs/status > > Documentation/ABI/testing/sysfs-fs-f2fs | 34 ++++++++++++------------- > fs/f2fs/debug.c | 19 +------------- > fs/f2fs/f2fs.h | 1 + > fs/f2fs/sysfs.c | 26 ++++++++++++++++++- > 4 files changed, 44 insertions(+), 36 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs > index 73211f77d11e..b07eb1e27c97 100644 > --- a/Documentation/ABI/testing/sysfs-fs-f2fs > +++ b/Documentation/ABI/testing/sysfs-fs-f2fs > @@ -410,23 +410,23 @@ Date: December 2020 > Contact: "Chao Yu" <yuchao0@huawei.com> > Description: Show status of f2fs superblock in real time. > > - ====== ===================== ================================= > - value sb status macro description > - 0x1 SBI_IS_DIRTY dirty flag for checkpoint > - 0x2 SBI_IS_CLOSE specify unmounting > - 0x4 SBI_NEED_FSCK need fsck.f2fs to fix > - 0x8 SBI_POR_DOING recovery is doing or not > - 0x10 SBI_NEED_SB_WRITE need to recover superblock > - 0x20 SBI_NEED_CP need to checkpoint > - 0x40 SBI_IS_SHUTDOWN shutdown by ioctl > - 0x80 SBI_IS_RECOVERED recovered orphan/data > - 0x100 SBI_CP_DISABLED CP was disabled last mount > - 0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly > - 0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP > - 0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP > - 0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted > - 0x2000 SBI_IS_RESIZEFS resizefs is in process > - ====== ===================== ================================= > + ===================== ================================= > + sb status description > + fs_dirty dirty flag for checkpoint > + closing specify unmounting > + need_fsck need fsck.f2fs to fix > + recovering recovery is doing or not > + sb_dirty need to recover superblock > + need_cp need to checkpoint > + shutdown shutdown by ioctl > + recovered recovered orphan/data > + cp_disabled CP was disabled last mount > + cp_disabled_quick CP was disabled quickly > + quota_need_flush need to flush quota info in CP > + quota_skip_flush skip flushing quota in current CP > + quota_need_repair quota file may be corrupted > + resizefs resizefs is in process > + ===================== ================================= > > What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio > Date: January 2021 > diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c > index d8c09346545d..298bf41a13b6 100644 > --- a/fs/f2fs/debug.c > +++ b/fs/f2fs/debug.c > @@ -323,23 +323,6 @@ static void update_mem_info(struct f2fs_sb_info *sbi) > #endif > } > > -static char *s_flag[] = { > - [SBI_IS_DIRTY] = " fs_dirty", > - [SBI_IS_CLOSE] = " closing", > - [SBI_NEED_FSCK] = " need_fsck", > - [SBI_POR_DOING] = " recovering", > - [SBI_NEED_SB_WRITE] = " sb_dirty", > - [SBI_NEED_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; > @@ -357,7 +340,7 @@ static int stat_show(struct seq_file *s, void *v) > if (si->sbi->s_flag) { > seq_puts(s, "[SBI:"); > for_each_set_bit(j, &si->sbi->s_flag, 32) > - seq_puts(s, s_flag[j]); > + seq_printf(s, " %s", s_flag[j]); > seq_puts(s, "]\n"); > } > seq_printf(s, "[SB: 1] [CP: 2] [SIT: %d] [NAT: %d] ", > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index 67faa43cc141..772dd3352c64 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -1257,6 +1257,7 @@ enum { > SBI_QUOTA_NEED_REPAIR, /* quota file may be corrupted */ > SBI_IS_RESIZEFS, /* resizefs is in process */ > }; > +extern char *s_flag[]; > > enum { > CP_TIME, > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c > index 0954761341d7..e6f87e3d8f2e 100644 > --- a/fs/f2fs/sysfs.c > +++ b/fs/f2fs/sysfs.c > @@ -111,10 +111,34 @@ static ssize_t lifetime_write_kbytes_show(struct f2fs_attr *a, > sbi->sectors_written_start) >> 1))); > } > > +char *s_flag[] = { > + [SBI_IS_DIRTY] = "fs_dirty", > + [SBI_IS_CLOSE] = "closing", > + [SBI_NEED_FSCK] = "need_fsck", > + [SBI_POR_DOING] = "recovering", > + [SBI_NEED_SB_WRITE] = "sb_dirty", > + [SBI_NEED_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 ssize_t sb_status_show(struct f2fs_attr *a, > struct f2fs_sb_info *sbi, char *buf) > { > - return sprintf(buf, "%lx\n", sbi->s_flag); > + int len = 0, i = 0; > + > + for_each_set_bit(i, &sbi->s_flag, 32) > + len += scnprintf(buf + len, PAGE_SIZE - len, "%s%s", > + len ? ", " : "", s_flag[i]); > + len += scnprintf(buf + len, PAGE_SIZE - len, "\n"); > + > + return len; > } > > static ssize_t features_show(struct f2fs_attr *a, >
WARNING: multiple messages have this Message-ID (diff)
From: Chao Yu <chao@kernel.org> To: Yangtao Li <frank.li@vivo.com>, jaegeuk@kernel.org Cc: linux-kernel@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net Subject: Re: [f2fs-dev] [PATCH] f2fs: convert /sys/fs/f2fs/<disk>/stat/sb_status to use string Date: Fri, 13 Aug 2021 22:09:53 +0800 [thread overview] Message-ID: <78fcfb53-66ec-b383-8477-3f25ee13f962@kernel.org> (raw) In-Reply-To: <20210813140119.130321-1-frank.li@vivo.com> On 2021/8/13 22:01, Yangtao Li wrote: > Do not use numbers but strings to improve readability when flag is set. This breaks output rule of sysfs entry, see below link: https://www.mail-archive.com/linux-f2fs-devel@lists.sourceforge.net/msg19001.html Thanks, > > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > This patch is based on [v2] f2fs: improve sbi status info in debugfs/f2fs/status > > Documentation/ABI/testing/sysfs-fs-f2fs | 34 ++++++++++++------------- > fs/f2fs/debug.c | 19 +------------- > fs/f2fs/f2fs.h | 1 + > fs/f2fs/sysfs.c | 26 ++++++++++++++++++- > 4 files changed, 44 insertions(+), 36 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs b/Documentation/ABI/testing/sysfs-fs-f2fs > index 73211f77d11e..b07eb1e27c97 100644 > --- a/Documentation/ABI/testing/sysfs-fs-f2fs > +++ b/Documentation/ABI/testing/sysfs-fs-f2fs > @@ -410,23 +410,23 @@ Date: December 2020 > Contact: "Chao Yu" <yuchao0@huawei.com> > Description: Show status of f2fs superblock in real time. > > - ====== ===================== ================================= > - value sb status macro description > - 0x1 SBI_IS_DIRTY dirty flag for checkpoint > - 0x2 SBI_IS_CLOSE specify unmounting > - 0x4 SBI_NEED_FSCK need fsck.f2fs to fix > - 0x8 SBI_POR_DOING recovery is doing or not > - 0x10 SBI_NEED_SB_WRITE need to recover superblock > - 0x20 SBI_NEED_CP need to checkpoint > - 0x40 SBI_IS_SHUTDOWN shutdown by ioctl > - 0x80 SBI_IS_RECOVERED recovered orphan/data > - 0x100 SBI_CP_DISABLED CP was disabled last mount > - 0x200 SBI_CP_DISABLED_QUICK CP was disabled quickly > - 0x400 SBI_QUOTA_NEED_FLUSH need to flush quota info in CP > - 0x800 SBI_QUOTA_SKIP_FLUSH skip flushing quota in current CP > - 0x1000 SBI_QUOTA_NEED_REPAIR quota file may be corrupted > - 0x2000 SBI_IS_RESIZEFS resizefs is in process > - ====== ===================== ================================= > + ===================== ================================= > + sb status description > + fs_dirty dirty flag for checkpoint > + closing specify unmounting > + need_fsck need fsck.f2fs to fix > + recovering recovery is doing or not > + sb_dirty need to recover superblock > + need_cp need to checkpoint > + shutdown shutdown by ioctl > + recovered recovered orphan/data > + cp_disabled CP was disabled last mount > + cp_disabled_quick CP was disabled quickly > + quota_need_flush need to flush quota info in CP > + quota_skip_flush skip flushing quota in current CP > + quota_need_repair quota file may be corrupted > + resizefs resizefs is in process > + ===================== ================================= > > What: /sys/fs/f2fs/<disk>/ckpt_thread_ioprio > Date: January 2021 > diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c > index d8c09346545d..298bf41a13b6 100644 > --- a/fs/f2fs/debug.c > +++ b/fs/f2fs/debug.c > @@ -323,23 +323,6 @@ static void update_mem_info(struct f2fs_sb_info *sbi) > #endif > } > > -static char *s_flag[] = { > - [SBI_IS_DIRTY] = " fs_dirty", > - [SBI_IS_CLOSE] = " closing", > - [SBI_NEED_FSCK] = " need_fsck", > - [SBI_POR_DOING] = " recovering", > - [SBI_NEED_SB_WRITE] = " sb_dirty", > - [SBI_NEED_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; > @@ -357,7 +340,7 @@ static int stat_show(struct seq_file *s, void *v) > if (si->sbi->s_flag) { > seq_puts(s, "[SBI:"); > for_each_set_bit(j, &si->sbi->s_flag, 32) > - seq_puts(s, s_flag[j]); > + seq_printf(s, " %s", s_flag[j]); > seq_puts(s, "]\n"); > } > seq_printf(s, "[SB: 1] [CP: 2] [SIT: %d] [NAT: %d] ", > diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h > index 67faa43cc141..772dd3352c64 100644 > --- a/fs/f2fs/f2fs.h > +++ b/fs/f2fs/f2fs.h > @@ -1257,6 +1257,7 @@ enum { > SBI_QUOTA_NEED_REPAIR, /* quota file may be corrupted */ > SBI_IS_RESIZEFS, /* resizefs is in process */ > }; > +extern char *s_flag[]; > > enum { > CP_TIME, > diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c > index 0954761341d7..e6f87e3d8f2e 100644 > --- a/fs/f2fs/sysfs.c > +++ b/fs/f2fs/sysfs.c > @@ -111,10 +111,34 @@ static ssize_t lifetime_write_kbytes_show(struct f2fs_attr *a, > sbi->sectors_written_start) >> 1))); > } > > +char *s_flag[] = { > + [SBI_IS_DIRTY] = "fs_dirty", > + [SBI_IS_CLOSE] = "closing", > + [SBI_NEED_FSCK] = "need_fsck", > + [SBI_POR_DOING] = "recovering", > + [SBI_NEED_SB_WRITE] = "sb_dirty", > + [SBI_NEED_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 ssize_t sb_status_show(struct f2fs_attr *a, > struct f2fs_sb_info *sbi, char *buf) > { > - return sprintf(buf, "%lx\n", sbi->s_flag); > + int len = 0, i = 0; > + > + for_each_set_bit(i, &sbi->s_flag, 32) > + len += scnprintf(buf + len, PAGE_SIZE - len, "%s%s", > + len ? ", " : "", s_flag[i]); > + len += scnprintf(buf + len, PAGE_SIZE - len, "\n"); > + > + return len; > } > > static ssize_t features_show(struct f2fs_attr *a, > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
next prev parent reply other threads:[~2021-08-13 14:10 UTC|newest] Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-08-13 14:01 [PATCH] f2fs: convert /sys/fs/f2fs/<disk>/stat/sb_status to use string Yangtao Li 2021-08-13 14:01 ` [f2fs-dev] " Yangtao Li 2021-08-13 14:09 ` Chao Yu [this message] 2021-08-13 14:09 ` Chao Yu 2021-08-13 14:17 ` 李扬韬 2021-08-13 14:17 ` [f2fs-dev] " 李扬韬 2021-08-13 14:41 ` Chao Yu 2021-08-13 14:41 ` [f2fs-dev] " Chao Yu 2021-08-13 14:55 ` 李扬韬 2021-08-13 14:55 ` [f2fs-dev] " 李扬韬 2021-08-14 2:41 ` 李扬韬 2021-08-14 2:41 ` [f2fs-dev] " 李扬韬
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=78fcfb53-66ec-b383-8477-3f25ee13f962@kernel.org \ --to=chao@kernel.org \ --cc=frank.li@vivo.com \ --cc=jaegeuk@kernel.org \ --cc=linux-f2fs-devel@lists.sourceforge.net \ --cc=linux-kernel@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.