f2fs: introduce cp_status sysfs entry
authorChao Yu <chao@kernel.org>
Tue, 27 Sep 2022 02:44:47 +0000 (10:44 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 4 Oct 2022 20:31:44 +0000 (13:31 -0700)
This patch adds a new sysfs entry named cp_status, it can output
checkpoint flags in real time.

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Documentation/ABI/testing/sysfs-fs-f2fs
fs/f2fs/sysfs.c

index 083ac2d..483639f 100644 (file)
@@ -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.yu@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" <daehojeong@google.com>
index 39ebf0a..df27afd 100644 (file)
@@ -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);