aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYunlei He <heyunlei@huawei.com>2016-08-18 09:01:18 -0400
committerJaegeuk Kim <jaegeuk@kernel.org>2016-08-29 21:31:06 -0400
commitf83a2584cae8f4deacb4c82da0b061813d59a40c (patch)
tree5b3c5cb00b68920b14d30cd0d4dae5a3f337c5ae
parent2d9e9c32a04edef5482e53d15535b77aa7e595cd (diff)
f2fs: add discard info to sys entry of f2fs status
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>
-rw-r--r--fs/f2fs/debug.c10
-rw-r--r--fs/f2fs/f2fs.h7
2 files changed, 14 insertions, 3 deletions
diff --git a/fs/f2fs/debug.c b/fs/f2fs/debug.c
index af69d6bcfc3f..ae13521381f7 100644
--- a/fs/f2fs/debug.c
+++ b/fs/f2fs/debug.c
@@ -54,6 +54,7 @@ static void update_general_status(struct f2fs_sb_info *sbi)
54 si->rsvd_segs = reserved_segments(sbi); 54 si->rsvd_segs = reserved_segments(sbi);
55 si->overp_segs = overprovision_segments(sbi); 55 si->overp_segs = overprovision_segments(sbi);
56 si->valid_count = valid_user_blocks(sbi); 56 si->valid_count = valid_user_blocks(sbi);
57 si->discard_blks = discard_blocks(sbi);
57 si->valid_node_count = valid_node_count(sbi); 58 si->valid_node_count = valid_node_count(sbi);
58 si->valid_inode_count = valid_inode_count(sbi); 59 si->valid_inode_count = valid_inode_count(sbi);
59 si->inline_xattr = atomic_read(&sbi->inline_xattr); 60 si->inline_xattr = atomic_read(&sbi->inline_xattr);
@@ -230,8 +231,13 @@ static int stat_show(struct seq_file *s, void *v)
230 si->ssa_area_segs, si->main_area_segs); 231 si->ssa_area_segs, si->main_area_segs);
231 seq_printf(s, "(OverProv:%d Resv:%d)]\n\n", 232 seq_printf(s, "(OverProv:%d Resv:%d)]\n\n",
232 si->overp_segs, si->rsvd_segs); 233 si->overp_segs, si->rsvd_segs);
233 seq_printf(s, "Utilization: %d%% (%d valid blocks)\n", 234 if (test_opt(si->sbi, DISCARD))
234 si->utilization, si->valid_count); 235 seq_printf(s, "Utilization: %u%% (%u valid blocks, %u discard blocks)\n",
236 si->utilization, si->valid_count, si->discard_blks);
237 else
238 seq_printf(s, "Utilization: %u%% (%u valid blocks)\n",
239 si->utilization, si->valid_count);
240
235 seq_printf(s, " - Node: %u (Inode: %u, ", 241 seq_printf(s, " - Node: %u (Inode: %u, ",
236 si->valid_node_count, si->valid_inode_count); 242 si->valid_node_count, si->valid_inode_count);
237 seq_printf(s, "Other: %u)\n - Data: %u\n", 243 seq_printf(s, "Other: %u)\n - Data: %u\n",
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 59eed3ec35c7..0f4599099dbc 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -1250,6 +1250,11 @@ static inline block_t valid_user_blocks(struct f2fs_sb_info *sbi)
1250 return sbi->total_valid_block_count; 1250 return sbi->total_valid_block_count;
1251} 1251}
1252 1252
1253static inline block_t discard_blocks(struct f2fs_sb_info *sbi)
1254{
1255 return sbi->discard_blks;
1256}
1257
1253static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag) 1258static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag)
1254{ 1259{
1255 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi); 1260 struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
@@ -2136,7 +2141,7 @@ struct f2fs_stat_info {
2136 int total_count, utilization; 2141 int total_count, utilization;
2137 int bg_gc, wb_bios; 2142 int bg_gc, wb_bios;
2138 int inline_xattr, inline_inode, inline_dir, orphans; 2143 int inline_xattr, inline_inode, inline_dir, orphans;
2139 unsigned int valid_count, valid_node_count, valid_inode_count; 2144 unsigned int valid_count, valid_node_count, valid_inode_count, discard_blks;
2140 unsigned int bimodal, avg_vblocks; 2145 unsigned int bimodal, avg_vblocks;
2141 int util_free, util_valid, util_invalid; 2146 int util_free, util_valid, util_invalid;
2142 int rsvd_segs, overp_segs; 2147 int rsvd_segs, overp_segs;