diff options
author | Chunguang Xu <brookxu@tencent.com> | 2020-09-28 19:36:35 +0800 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2020-10-18 10:37:13 -0400 |
commit | addd752cff27774258f593c68d283725398689c4 (patch) | |
tree | 4772592f0166153a11de3cd8543ffed3767ea52d | |
parent | 9d1f9b27704009a0032c9a70f8a44cfb331971b5 (diff) | |
download | linux-addd752cff27774258f593c68d283725398689c4.tar.bz2 |
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>
-rw-r--r-- | fs/ext4/ext4.h | 3 | ||||
-rw-r--r-- | fs/ext4/mballoc.c | 7 |
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); |