f2fs: add a help func F2FS_STAT() to get the f2fs_stat_info

Add a help func F2FS_STAT() to get the f2fs_stat_info.

Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
This commit is contained in:
Gu Zheng 2013-07-12 14:47:11 +08:00 committed by Jaegeuk Kim
parent 5e176d54a6
commit 963d4f7d7b
2 changed files with 16 additions and 11 deletions

View File

@ -29,7 +29,7 @@ static DEFINE_MUTEX(f2fs_stat_mutex);
static void update_general_status(struct f2fs_sb_info *sbi) static void update_general_status(struct f2fs_sb_info *sbi)
{ {
struct f2fs_stat_info *si = sbi->stat_info; struct f2fs_stat_info *si = F2FS_STAT(sbi);
int i; int i;
/* valid check of the segment numbers */ /* valid check of the segment numbers */
@ -83,7 +83,7 @@ static void update_general_status(struct f2fs_sb_info *sbi)
*/ */
static void update_sit_info(struct f2fs_sb_info *sbi) static void update_sit_info(struct f2fs_sb_info *sbi)
{ {
struct f2fs_stat_info *si = sbi->stat_info; struct f2fs_stat_info *si = F2FS_STAT(sbi);
unsigned int blks_per_sec, hblks_per_sec, total_vblocks, bimodal, dist; unsigned int blks_per_sec, hblks_per_sec, total_vblocks, bimodal, dist;
struct sit_info *sit_i = SIT_I(sbi); struct sit_info *sit_i = SIT_I(sbi);
unsigned int segno, vblocks; unsigned int segno, vblocks;
@ -118,7 +118,7 @@ static void update_sit_info(struct f2fs_sb_info *sbi)
*/ */
static void update_mem_info(struct f2fs_sb_info *sbi) static void update_mem_info(struct f2fs_sb_info *sbi)
{ {
struct f2fs_stat_info *si = sbi->stat_info; struct f2fs_stat_info *si = F2FS_STAT(sbi);
unsigned npages; unsigned npages;
if (si->base_mem) if (si->base_mem)
@ -305,11 +305,10 @@ int f2fs_build_stats(struct f2fs_sb_info *sbi)
struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi); struct f2fs_super_block *raw_super = F2FS_RAW_SUPER(sbi);
struct f2fs_stat_info *si; struct f2fs_stat_info *si;
sbi->stat_info = kzalloc(sizeof(struct f2fs_stat_info), GFP_KERNEL); si = kzalloc(sizeof(struct f2fs_stat_info), GFP_KERNEL);
if (!sbi->stat_info) if (!si)
return -ENOMEM; return -ENOMEM;
si = sbi->stat_info;
si->all_area_segs = le32_to_cpu(raw_super->segment_count); si->all_area_segs = le32_to_cpu(raw_super->segment_count);
si->sit_area_segs = le32_to_cpu(raw_super->segment_count_sit); si->sit_area_segs = le32_to_cpu(raw_super->segment_count_sit);
si->nat_area_segs = le32_to_cpu(raw_super->segment_count_nat); si->nat_area_segs = le32_to_cpu(raw_super->segment_count_nat);
@ -319,6 +318,7 @@ int f2fs_build_stats(struct f2fs_sb_info *sbi)
si->main_area_zones = si->main_area_sections / si->main_area_zones = si->main_area_sections /
le32_to_cpu(raw_super->secs_per_zone); le32_to_cpu(raw_super->secs_per_zone);
si->sbi = sbi; si->sbi = sbi;
sbi->stat_info = si;
mutex_lock(&f2fs_stat_mutex); mutex_lock(&f2fs_stat_mutex);
list_add_tail(&si->stat_list, &f2fs_stat_list); list_add_tail(&si->stat_list, &f2fs_stat_list);
@ -329,13 +329,13 @@ int f2fs_build_stats(struct f2fs_sb_info *sbi)
void f2fs_destroy_stats(struct f2fs_sb_info *sbi) void f2fs_destroy_stats(struct f2fs_sb_info *sbi)
{ {
struct f2fs_stat_info *si = sbi->stat_info; struct f2fs_stat_info *si = F2FS_STAT(sbi);
mutex_lock(&f2fs_stat_mutex); mutex_lock(&f2fs_stat_mutex);
list_del(&si->stat_list); list_del(&si->stat_list);
mutex_unlock(&f2fs_stat_mutex); mutex_unlock(&f2fs_stat_mutex);
kfree(sbi->stat_info); kfree(si);
} }
void __init f2fs_create_root_stats(void) void __init f2fs_create_root_stats(void)

View File

@ -1113,11 +1113,16 @@ struct f2fs_stat_info {
unsigned base_mem, cache_mem; unsigned base_mem, cache_mem;
}; };
static inline struct f2fs_stat_info *F2FS_STAT(struct f2fs_sb_info *sbi)
{
return (struct f2fs_stat_info*)sbi->stat_info;
}
#define stat_inc_call_count(si) ((si)->call_count++) #define stat_inc_call_count(si) ((si)->call_count++)
#define stat_inc_seg_count(sbi, type) \ #define stat_inc_seg_count(sbi, type) \
do { \ do { \
struct f2fs_stat_info *si = sbi->stat_info; \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \
(si)->tot_segs++; \ (si)->tot_segs++; \
if (type == SUM_TYPE_DATA) \ if (type == SUM_TYPE_DATA) \
si->data_segs++; \ si->data_segs++; \
@ -1130,14 +1135,14 @@ struct f2fs_stat_info {
#define stat_inc_data_blk_count(sbi, blks) \ #define stat_inc_data_blk_count(sbi, blks) \
do { \ do { \
struct f2fs_stat_info *si = sbi->stat_info; \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \
stat_inc_tot_blk_count(si, blks); \ stat_inc_tot_blk_count(si, blks); \
si->data_blks += (blks); \ si->data_blks += (blks); \
} while (0) } while (0)
#define stat_inc_node_blk_count(sbi, blks) \ #define stat_inc_node_blk_count(sbi, blks) \
do { \ do { \
struct f2fs_stat_info *si = sbi->stat_info; \ struct f2fs_stat_info *si = F2FS_STAT(sbi); \
stat_inc_tot_blk_count(si, blks); \ stat_inc_tot_blk_count(si, blks); \
si->node_blks += (blks); \ si->node_blks += (blks); \
} while (0) } while (0)