f2fs: add discard info to sys entry of f2fs status
authorYunlei He <heyunlei@huawei.com>
Thu, 18 Aug 2016 13:01:18 +0000 (21:01 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 30 Aug 2016 01:31:06 +0000 (18:31 -0700)
This patch add discard block count to sys entry of f2fs status

Signed-off-by: Yunlei He <heyunlei@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/debug.c
fs/f2fs/f2fs.h

index af69d6b..ae13521 100644 (file)
@@ -54,6 +54,7 @@ static void update_general_status(struct f2fs_sb_info *sbi)
        si->rsvd_segs = reserved_segments(sbi);
        si->overp_segs = overprovision_segments(sbi);
        si->valid_count = valid_user_blocks(sbi);
+       si->discard_blks = discard_blocks(sbi);
        si->valid_node_count = valid_node_count(sbi);
        si->valid_inode_count = valid_inode_count(sbi);
        si->inline_xattr = atomic_read(&sbi->inline_xattr);
@@ -230,8 +231,13 @@ static int stat_show(struct seq_file *s, void *v)
                           si->ssa_area_segs, si->main_area_segs);
                seq_printf(s, "(OverProv:%d Resv:%d)]\n\n",
                           si->overp_segs, si->rsvd_segs);
-               seq_printf(s, "Utilization: %d%% (%d valid blocks)\n",
-                          si->utilization, si->valid_count);
+               if (test_opt(si->sbi, DISCARD))
+                       seq_printf(s, "Utilization: %u%% (%u valid blocks, %u discard blocks)\n",
+                               si->utilization, si->valid_count, si->discard_blks);
+               else
+                       seq_printf(s, "Utilization: %u%% (%u valid blocks)\n",
+                               si->utilization, si->valid_count);
+
                seq_printf(s, "  - Node: %u (Inode: %u, ",
                           si->valid_node_count, si->valid_inode_count);
                seq_printf(s, "Other: %u)\n  - Data: %u\n",
index 59eed3e..0f45990 100644 (file)
@@ -1250,6 +1250,11 @@ static inline block_t valid_user_blocks(struct f2fs_sb_info *sbi)
        return sbi->total_valid_block_count;
 }
 
+static inline block_t discard_blocks(struct f2fs_sb_info *sbi)
+{
+       return sbi->discard_blks;
+}
+
 static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag)
 {
        struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
@@ -2136,7 +2141,7 @@ struct f2fs_stat_info {
        int total_count, utilization;
        int bg_gc, wb_bios;
        int inline_xattr, inline_inode, inline_dir, orphans;
-       unsigned int valid_count, valid_node_count, valid_inode_count;
+       unsigned int valid_count, valid_node_count, valid_inode_count, discard_blks;
        unsigned int bimodal, avg_vblocks;
        int util_free, util_valid, util_invalid;
        int rsvd_segs, overp_segs;