This patch adds a new sysfs entry named cp_status, it can output
checkpoint flags in real time.

Signed-off-by: Chao Yu <c...@kernel.org>
---
 Documentation/ABI/testing/sysfs-fs-f2fs | 24 ++++++++++++++++++++++++
 fs/f2fs/sysfs.c                         |  8 ++++++++
 2 files changed, 32 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs 
b/Documentation/ABI/testing/sysfs-fs-f2fs
index 083ac2d63eef..483639fb727b 100644
--- a/Documentation/ABI/testing/sysfs-fs-f2fs
+++ b/Documentation/ABI/testing/sysfs-fs-f2fs
@@ -466,6 +466,30 @@ Description:       Show status of f2fs superblock in real 
time.
                0x4000 SBI_IS_FREEZING       freefs is in process
                ====== ===================== =================================
 
+What:          /sys/fs/f2fs/<disk>/stat/cp_status
+Date:          September 2022
+Contact:       "Chao Yu" <chao...@oppo.com>
+Description:   Show status of f2fs checkpoint in real time.
+
+               =============================== ==============================
+               cp flag                         value
+               CP_UMOUNT_FLAG                  0x00000001
+               CP_ORPHAN_PRESENT_FLAG          0x00000002
+               CP_COMPACT_SUM_FLAG             0x00000004
+               CP_ERROR_FLAG                   0x00000008
+               CP_FSCK_FLAG                    0x00000010
+               CP_FASTBOOT_FLAG                0x00000020
+               CP_CRC_RECOVERY_FLAG            0x00000040
+               CP_NAT_BITS_FLAG                0x00000080
+               CP_TRIMMED_FLAG                 0x00000100
+               CP_NOCRC_RECOVERY_FLAG          0x00000200
+               CP_LARGE_NAT_BITMAP_FLAG        0x00000400
+               CP_QUOTA_NEED_FSCK_FLAG         0x00000800
+               CP_DISABLED_FLAG                0x00001000
+               CP_DISABLED_QUICK_FLAG          0x00002000
+               CP_RESIZEFS_FLAG                0x00004000
+               =============================== ==============================
+
 What:          /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
 Date:          January 2021
 Contact:       "Daeho Jeong" <daehoje...@google.com>
diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
index 39ebf0ad133a..df27afd71ef4 100644
--- a/fs/f2fs/sysfs.c
+++ b/fs/f2fs/sysfs.c
@@ -128,6 +128,12 @@ static ssize_t sb_status_show(struct f2fs_attr *a,
        return sprintf(buf, "%lx\n", sbi->s_flag);
 }
 
+static ssize_t cp_status_show(struct f2fs_attr *a,
+               struct f2fs_sb_info *sbi, char *buf)
+{
+       return sprintf(buf, "%x\n", le32_to_cpu(F2FS_CKPT(sbi)->ckpt_flags));
+}
+
 static ssize_t pending_discard_show(struct f2fs_attr *a,
                struct f2fs_sb_info *sbi, char *buf)
 {
@@ -1029,8 +1035,10 @@ static struct attribute *f2fs_feat_attrs[] = {
 ATTRIBUTE_GROUPS(f2fs_feat);
 
 F2FS_GENERAL_RO_ATTR(sb_status);
+F2FS_GENERAL_RO_ATTR(cp_status);
 static struct attribute *f2fs_stat_attrs[] = {
        ATTR_LIST(sb_status),
+       ATTR_LIST(cp_status),
        NULL,
 };
 ATTRIBUTE_GROUPS(f2fs_stat);
-- 
2.25.1



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to