diff options
author | Yunlei He <heyunlei@huawei.com> | 2016-08-18 09:01:18 -0400 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-08-29 21:31:06 -0400 |
commit | f83a2584cae8f4deacb4c82da0b061813d59a40c (patch) | |
tree | 5b3c5cb00b68920b14d30cd0d4dae5a3f337c5ae | |
parent | 2d9e9c32a04edef5482e53d15535b77aa7e595cd (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.c | 10 | ||||
-rw-r--r-- | fs/f2fs/f2fs.h | 7 |
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 | ||
1253 | static inline block_t discard_blocks(struct f2fs_sb_info *sbi) | ||
1254 | { | ||
1255 | return sbi->discard_blks; | ||
1256 | } | ||
1257 | |||
1253 | static inline unsigned long __bitmap_size(struct f2fs_sb_info *sbi, int flag) | 1258 | static 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; |