f2fs: show # of dirty segments via sysfs
authorJaegeuk Kim <jaegeuk@kernel.org>
Tue, 24 Oct 2017 07:46:54 +0000 (09:46 +0200)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 19 Dec 2017 03:28:22 +0000 (19:28 -0800)
This patch adds one sysfs entry to show # of dirty segments which can be
used for gc timing by user.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/sysfs.c

index 89f25efffd4361c0a427746ed1d1fcb2097eb5b1..48ebe6153cc51bedc400023751b560285978c6ed 100644 (file)
@@ -63,6 +63,13 @@ static unsigned char *__struct_ptr(struct f2fs_sb_info *sbi, int struct_type)
        return NULL;
 }
 
+static ssize_t dirty_segments_show(struct f2fs_attr *a,
+               struct f2fs_sb_info *sbi, char *buf)
+{
+       return snprintf(buf, PAGE_SIZE, "%llu\n",
+               (unsigned long long)(dirty_segments(sbi)));
+}
+
 static ssize_t lifetime_write_kbytes_show(struct f2fs_attr *a,
                struct f2fs_sb_info *sbi, char *buf)
 {
@@ -278,6 +285,7 @@ F2FS_RW_ATTR(F2FS_SBI, f2fs_sb_info, iostat_enable, iostat_enable);
 F2FS_RW_ATTR(FAULT_INFO_RATE, f2fs_fault_info, inject_rate, inject_rate);
 F2FS_RW_ATTR(FAULT_INFO_TYPE, f2fs_fault_info, inject_type, inject_type);
 #endif
+F2FS_GENERAL_RO_ATTR(dirty_segments);
 F2FS_GENERAL_RO_ATTR(lifetime_write_kbytes);
 F2FS_GENERAL_RO_ATTR(features);
 
@@ -320,6 +328,7 @@ static struct attribute *f2fs_attrs[] = {
        ATTR_LIST(inject_rate),
        ATTR_LIST(inject_type),
 #endif
+       ATTR_LIST(dirty_segments),
        ATTR_LIST(lifetime_write_kbytes),
        ATTR_LIST(features),
        ATTR_LIST(reserved_blocks),