[f2fs-dev] [PATCH] f2fs: clean up several status-related operations

2013-10-23 Thread Jaegeuk Kim
This patch cleans up improper definitions that update some status information.

Signed-off-by: Jaegeuk Kim jaegeuk@samsung.com
---
 fs/f2fs/checkpoint.c |  8 ++--
 fs/f2fs/data.c   | 12 +++-
 fs/f2fs/f2fs.h   | 14 +-
 fs/f2fs/gc.c |  4 +---
 fs/f2fs/segment.c| 10 --
 5 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index 6fb484c..b4a59cf 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -467,9 +467,7 @@ static int __add_dirty_inode(struct inode *inode, struct 
dir_inode_entry *new)
return -EEXIST;
}
list_add_tail(new-list, head);
-#ifdef CONFIG_F2FS_STAT_FS
-   sbi-n_dirty_dirs++;
-#endif
+   stat_inc_dirty_dir(sbi);
return 0;
 }
 
@@ -531,9 +529,7 @@ void remove_dirty_dir_inode(struct inode *inode)
if (entry-inode == inode) {
list_del(entry-list);
kmem_cache_free(inode_entry_slab, entry);
-#ifdef CONFIG_F2FS_STAT_FS
-   sbi-n_dirty_dirs--;
-#endif
+   stat_dec_dirty_dir(sbi);
break;
}
}
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 2535d3b..4d4718f 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -68,9 +68,6 @@ static int check_extent_cache(struct inode *inode, pgoff_t 
pgofs,
struct buffer_head *bh_result)
 {
struct f2fs_inode_info *fi = F2FS_I(inode);
-#ifdef CONFIG_F2FS_STAT_FS
-   struct f2fs_sb_info *sbi = F2FS_SB(inode-i_sb);
-#endif
pgoff_t start_fofs, end_fofs;
block_t start_blkaddr;
 
@@ -80,9 +77,8 @@ static int check_extent_cache(struct inode *inode, pgoff_t 
pgofs,
return 0;
}
 
-#ifdef CONFIG_F2FS_STAT_FS
-   sbi-total_hit_ext++;
-#endif
+   stat_inc_hit_ext(inode-i_sb);
+
start_fofs = fi-ext.fofs;
end_fofs = fi-ext.fofs + fi-ext.len - 1;
start_blkaddr = fi-ext.blk_addr;
@@ -100,9 +96,7 @@ static int check_extent_cache(struct inode *inode, pgoff_t 
pgofs,
else
bh_result-b_size = UINT_MAX;
 
-#ifdef CONFIG_F2FS_STAT_FS
-   sbi-read_hit_ext++;
-#endif
+   stat_inc_hit_ext(inode-i_sb);
read_unlock(fi-ext.ext_lock);
return 1;
}
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 2949275..d1fc93c 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -1155,7 +1155,13 @@ 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_bggc_count(sbi)   ((sbi)-bg_gc++)
+#define stat_inc_dirty_dir(sbi)((sbi)-n_dirty_dirs++)
+#define stat_dec_dirty_dir(sbi)((sbi)-n_dirty_dirs--)
+#define stat_inc_hit_ext(sb)   ((F2FS_SB(sb))-total_hit_ext++)
+#define stat_inc_alloc_type(sbi, curseg)   \
+   ((sbi)-segment_count[(curseg)-alloc_type]++)
 
 #define stat_inc_seg_count(sbi, type)  \
do {\
@@ -1184,12 +1190,18 @@ static inline struct f2fs_stat_info *F2FS_STAT(struct 
f2fs_sb_info *sbi)
si-node_blks += (blks);\
} while (0)
 
+
 int f2fs_build_stats(struct f2fs_sb_info *);
 void f2fs_destroy_stats(struct f2fs_sb_info *);
 void __init f2fs_create_root_stats(void);
 void f2fs_destroy_root_stats(void);
 #else
 #define stat_inc_call_count(si)
+#define stat_inc_bggc_count(si)
+#define stat_inc_dirty_dir(sbi)
+#define stat_dec_dirty_dir(sbi)
+#define stat_inc_hit_ext(sb)
+#define stat_inc_alloc_type(sbi, curseg)
 #define stat_inc_seg_count(si, type)
 #define stat_inc_tot_blk_count(si, blks)
 #define stat_inc_data_blk_count(si, blks)
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index 7914b92..cb286d7 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -77,9 +77,7 @@ static int gc_thread_func(void *data)
else
wait_ms = increase_sleep_time(gc_th, wait_ms);
 
-#ifdef CONFIG_F2FS_STAT_FS
-   sbi-bg_gc++;
-#endif
+   stat_inc_bggc_count(sbi);
 
/* if return value is not zero, no victim was selected */
if (f2fs_gc(sbi))
diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
index 8ac1619..c9c276e 100644
--- a/fs/f2fs/segment.c
+++ b/fs/f2fs/segment.c
@@ -554,9 +554,8 @@ static void allocate_segment_by_default(struct f2fs_sb_info 
*sbi,
change_curseg(sbi, type, true);
else
new_curseg(sbi, type, false);
-#ifdef CONFIG_F2FS_STAT_FS
-   sbi-segment_count[curseg-alloc_type]++;
-#endif
+
+   

Re: [f2fs-dev] [PATCH] f2fs: clean up several status-related operations

2013-10-23 Thread Gu Zheng
On 10/23/2013 05:46 PM, Jaegeuk Kim wrote:

 This patch cleans up improper definitions that update some status information.

Nice, it makes the code more neat.

 
 Signed-off-by: Jaegeuk Kim jaegeuk@samsung.com

Reviewed-by: Gu Zheng guz.f...@cn.fujitsu.com

 ---
  fs/f2fs/checkpoint.c |  8 ++--
  fs/f2fs/data.c   | 12 +++-
  fs/f2fs/f2fs.h   | 14 +-
  fs/f2fs/gc.c |  4 +---
  fs/f2fs/segment.c| 10 --
  5 files changed, 23 insertions(+), 25 deletions(-)
 
 diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
 index 6fb484c..b4a59cf 100644
 --- a/fs/f2fs/checkpoint.c
 +++ b/fs/f2fs/checkpoint.c
 @@ -467,9 +467,7 @@ static int __add_dirty_inode(struct inode *inode, struct 
 dir_inode_entry *new)
   return -EEXIST;
   }
   list_add_tail(new-list, head);
 -#ifdef CONFIG_F2FS_STAT_FS
 - sbi-n_dirty_dirs++;
 -#endif
 + stat_inc_dirty_dir(sbi);
   return 0;
  }
  
 @@ -531,9 +529,7 @@ void remove_dirty_dir_inode(struct inode *inode)
   if (entry-inode == inode) {
   list_del(entry-list);
   kmem_cache_free(inode_entry_slab, entry);
 -#ifdef CONFIG_F2FS_STAT_FS
 - sbi-n_dirty_dirs--;
 -#endif
 + stat_dec_dirty_dir(sbi);
   break;
   }
   }
 diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
 index 2535d3b..4d4718f 100644
 --- a/fs/f2fs/data.c
 +++ b/fs/f2fs/data.c
 @@ -68,9 +68,6 @@ static int check_extent_cache(struct inode *inode, pgoff_t 
 pgofs,
   struct buffer_head *bh_result)
  {
   struct f2fs_inode_info *fi = F2FS_I(inode);
 -#ifdef CONFIG_F2FS_STAT_FS
 - struct f2fs_sb_info *sbi = F2FS_SB(inode-i_sb);
 -#endif
   pgoff_t start_fofs, end_fofs;
   block_t start_blkaddr;
  
 @@ -80,9 +77,8 @@ static int check_extent_cache(struct inode *inode, pgoff_t 
 pgofs,
   return 0;
   }
  
 -#ifdef CONFIG_F2FS_STAT_FS
 - sbi-total_hit_ext++;
 -#endif
 + stat_inc_hit_ext(inode-i_sb);
 +
   start_fofs = fi-ext.fofs;
   end_fofs = fi-ext.fofs + fi-ext.len - 1;
   start_blkaddr = fi-ext.blk_addr;
 @@ -100,9 +96,7 @@ static int check_extent_cache(struct inode *inode, pgoff_t 
 pgofs,
   else
   bh_result-b_size = UINT_MAX;
  
 -#ifdef CONFIG_F2FS_STAT_FS
 - sbi-read_hit_ext++;
 -#endif
 + stat_inc_hit_ext(inode-i_sb);
   read_unlock(fi-ext.ext_lock);
   return 1;
   }
 diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
 index 2949275..d1fc93c 100644
 --- a/fs/f2fs/f2fs.h
 +++ b/fs/f2fs/f2fs.h
 @@ -1155,7 +1155,13 @@ 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_bggc_count(sbi) ((sbi)-bg_gc++)
 +#define stat_inc_dirty_dir(sbi)  ((sbi)-n_dirty_dirs++)
 +#define stat_dec_dirty_dir(sbi)  ((sbi)-n_dirty_dirs--)
 +#define stat_inc_hit_ext(sb) ((F2FS_SB(sb))-total_hit_ext++)
 +#define stat_inc_alloc_type(sbi, curseg) \
 + ((sbi)-segment_count[(curseg)-alloc_type]++)
  
  #define stat_inc_seg_count(sbi, type)
 \
   do {\
 @@ -1184,12 +1190,18 @@ static inline struct f2fs_stat_info *F2FS_STAT(struct 
 f2fs_sb_info *sbi)
   si-node_blks += (blks);\
   } while (0)
  
 +
  int f2fs_build_stats(struct f2fs_sb_info *);
  void f2fs_destroy_stats(struct f2fs_sb_info *);
  void __init f2fs_create_root_stats(void);
  void f2fs_destroy_root_stats(void);
  #else
  #define stat_inc_call_count(si)
 +#define stat_inc_bggc_count(si)
 +#define stat_inc_dirty_dir(sbi)
 +#define stat_dec_dirty_dir(sbi)
 +#define stat_inc_hit_ext(sb)
 +#define stat_inc_alloc_type(sbi, curseg)
  #define stat_inc_seg_count(si, type)
  #define stat_inc_tot_blk_count(si, blks)
  #define stat_inc_data_blk_count(si, blks)
 diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
 index 7914b92..cb286d7 100644
 --- a/fs/f2fs/gc.c
 +++ b/fs/f2fs/gc.c
 @@ -77,9 +77,7 @@ static int gc_thread_func(void *data)
   else
   wait_ms = increase_sleep_time(gc_th, wait_ms);
  
 -#ifdef CONFIG_F2FS_STAT_FS
 - sbi-bg_gc++;
 -#endif
 + stat_inc_bggc_count(sbi);
  
   /* if return value is not zero, no victim was selected */
   if (f2fs_gc(sbi))
 diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
 index 8ac1619..c9c276e 100644
 --- a/fs/f2fs/segment.c
 +++ b/fs/f2fs/segment.c
 @@ -554,9 +554,8 @@ static void allocate_segment_by_default(struct 
 f2fs_sb_info *sbi,