summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/f2fs.h
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2014-09-02 18:52:58 -0400
committerJaegeuk Kim <jaegeuk@kernel.org>2014-09-09 16:15:02 -0400
commit9850cf4a8908886370b1f15aacf83d291f098c72 (patch)
tree2ee332a189922cefd47e26ce335cab7ad21e96b2 /fs/f2fs/f2fs.h
parent2ae4c673e3cbd69bc2decf6d7f5961f3c7b9b38b (diff)
f2fs: need fsck.f2fs when f2fs_bug_on is triggered
If any f2fs_bug_on is triggered, fsck.f2fs is needed. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r--fs/f2fs/f2fs.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 210c62df08c3..b389ced9090b 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -21,10 +21,16 @@
21#include <linux/sched.h> 21#include <linux/sched.h>
22 22
23#ifdef CONFIG_F2FS_CHECK_FS 23#ifdef CONFIG_F2FS_CHECK_FS
24#define f2fs_bug_on(condition) BUG_ON(condition) 24#define f2fs_bug_on(sbi, condition) BUG_ON(condition)
25#define f2fs_down_write(x, y) down_write_nest_lock(x, y) 25#define f2fs_down_write(x, y) down_write_nest_lock(x, y)
26#else 26#else
27#define f2fs_bug_on(condition) WARN_ON(condition) 27#define f2fs_bug_on(sbi, condition) \
28 do { \
29 if (unlikely(condition)) { \
30 WARN_ON(1); \
31 sbi->need_fsck = true; \
32 } \
33 } while (0)
28#define f2fs_down_write(x, y) down_write(x) 34#define f2fs_down_write(x, y) down_write(x)
29#endif 35#endif
30 36
@@ -719,8 +725,8 @@ static inline void dec_valid_block_count(struct f2fs_sb_info *sbi,
719 blkcnt_t count) 725 blkcnt_t count)
720{ 726{
721 spin_lock(&sbi->stat_lock); 727 spin_lock(&sbi->stat_lock);
722 f2fs_bug_on(sbi->total_valid_block_count < (block_t) count); 728 f2fs_bug_on(sbi, sbi->total_valid_block_count < (block_t) count);
723 f2fs_bug_on(inode->i_blocks < count); 729 f2fs_bug_on(sbi, inode->i_blocks < count);
724 inode->i_blocks -= count; 730 inode->i_blocks -= count;
725 sbi->total_valid_block_count -= (block_t)count; 731 sbi->total_valid_block_count -= (block_t)count;
726 spin_unlock(&sbi->stat_lock); 732 spin_unlock(&sbi->stat_lock);
@@ -864,9 +870,9 @@ static inline void dec_valid_node_count(struct f2fs_sb_info *sbi,
864{ 870{
865 spin_lock(&sbi->stat_lock); 871 spin_lock(&sbi->stat_lock);
866 872
867 f2fs_bug_on(!sbi->total_valid_block_count); 873 f2fs_bug_on(sbi, !sbi->total_valid_block_count);
868 f2fs_bug_on(!sbi->total_valid_node_count); 874 f2fs_bug_on(sbi, !sbi->total_valid_node_count);
869 f2fs_bug_on(!inode->i_blocks); 875 f2fs_bug_on(sbi, !inode->i_blocks);
870 876
871 inode->i_blocks--; 877 inode->i_blocks--;
872 sbi->total_valid_node_count--; 878 sbi->total_valid_node_count--;
@@ -883,7 +889,7 @@ static inline unsigned int valid_node_count(struct f2fs_sb_info *sbi)
883static inline void inc_valid_inode_count(struct f2fs_sb_info *sbi) 889static inline void inc_valid_inode_count(struct f2fs_sb_info *sbi)
884{ 890{
885 spin_lock(&sbi->stat_lock); 891 spin_lock(&sbi->stat_lock);
886 f2fs_bug_on(sbi->total_valid_inode_count == sbi->total_node_count); 892 f2fs_bug_on(sbi, sbi->total_valid_inode_count == sbi->total_node_count);
887 sbi->total_valid_inode_count++; 893 sbi->total_valid_inode_count++;
888 spin_unlock(&sbi->stat_lock); 894 spin_unlock(&sbi->stat_lock);
889} 895}
@@ -891,7 +897,7 @@ static inline void inc_valid_inode_count(struct f2fs_sb_info *sbi)
891static inline void dec_valid_inode_count(struct f2fs_sb_info *sbi) 897static inline void dec_valid_inode_count(struct f2fs_sb_info *sbi)
892{ 898{
893 spin_lock(&sbi->stat_lock); 899 spin_lock(&sbi->stat_lock);
894 f2fs_bug_on(!sbi->total_valid_inode_count); 900 f2fs_bug_on(sbi, !sbi->total_valid_inode_count);
895 sbi->total_valid_inode_count--; 901 sbi->total_valid_inode_count--;
896 spin_unlock(&sbi->stat_lock); 902 spin_unlock(&sbi->stat_lock);
897} 903}
@@ -907,7 +913,7 @@ static inline void f2fs_put_page(struct page *page, int unlock)
907 return; 913 return;
908 914
909 if (unlock) { 915 if (unlock) {
910 f2fs_bug_on(!PageLocked(page)); 916 f2fs_bug_on(F2FS_P_SB(page), !PageLocked(page));
911 unlock_page(page); 917 unlock_page(page);
912 } 918 }
913 page_cache_release(page); 919 page_cache_release(page);