summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorChunguang Xu <brookxu@tencent.com>2020-09-28 14:36:35 +0300
committerTheodore Ts'o <tytso@mit.edu>2020-10-18 17:37:13 +0300
commitaddd752cff27774258f593c68d283725398689c4 (patch)
tree4772592f0166153a11de3cd8543ffed3767ea52d /fs
parent9d1f9b27704009a0032c9a70f8a44cfb331971b5 (diff)
downloadlinux-addd752cff27774258f593c68d283725398689c4.tar.xz
ext4: make mb_check_counter per group
Make bb_check_counter per group, so each group has the same chance to be checked, which can expose errors more easily. Signed-off-by: Chunguang Xu <brookxu@tencent.com> Link: https://lore.kernel.org/r/1601292995-32205-2-git-send-email-brookxu@tencent.com Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext4/ext4.h3
-rw-r--r--fs/ext4/mballoc.c7
2 files changed, 5 insertions, 5 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 11077696031d..3e31371795cb 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -3154,6 +3154,9 @@ int ext4_update_disksize_before_punch(struct inode *inode, loff_t offset,
struct ext4_group_info {
unsigned long bb_state;
+#ifdef AGGRESSIVE_CHECK
+ unsigned long bb_check_counter;
+#endif
struct rb_root bb_free_root;
ext4_grpblk_t bb_first_free; /* first free block */
ext4_grpblk_t bb_free; /* total free blocks */
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 4846f885357e..74a48d6ff9cc 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -619,11 +619,8 @@ static int __mb_check_buddy(struct ext4_buddy *e4b, char *file,
void *buddy;
void *buddy2;
- {
- static int mb_check_counter;
- if (mb_check_counter++ % 100 != 0)
- return 0;
- }
+ if (e4b->bd_info->bb_check_counter++ % 10)
+ return 0;
while (order > 1) {
buddy = mb_find_buddy(e4b, order, &max);