summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorYe Bin <yebin10@huawei.com>2023-08-15 19:26:12 +0800
committerJan Kara <jack@suse.cz>2023-08-16 17:49:47 +0200
commit9bc6fc3304d89f19c028cb4a8d6af94f9e5faeb0 (patch)
treedfdc8936d67e0bdfdf91d97ebb52b29021afd9a0 /fs
parent83f99de1b7c0dcfa42b211e5e40334b7ad786b36 (diff)
ext2: dump current reservation window info
There's report BUG in 'ext2_try_to_allocate_with_rsv()', although there's now dump of all reservation windows information. But there's unknown which window is being processed.So this is not helpful for locating the issue. To better analyze the problem, dump the information about reservation window that is being processed. And just bail with error instead of BUG here. Signed-off-by: Ye Bin <yebin10@huawei.com> Message-Id: <20230815112612.221145-5-yebin10@huawei.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs')
-rw-r--r--fs/ext2/balloc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
index dd74c77a4ac1..424b277f31ff 100644
--- a/fs/ext2/balloc.c
+++ b/fs/ext2/balloc.c
@@ -1133,8 +1133,13 @@ ext2_try_to_allocate_with_rsv(struct super_block *sb, unsigned int group,
if ((my_rsv->rsv_start > group_last_block) ||
(my_rsv->rsv_end < group_first_block)) {
+ ext2_error(sb, __func__,
+ "Reservation out of group %u range goal %d fsb[%lu,%lu] rsv[%lu, %lu]",
+ group, grp_goal, group_first_block,
+ group_last_block, my_rsv->rsv_start,
+ my_rsv->rsv_end);
rsv_window_dump(&EXT2_SB(sb)->s_rsv_window_root, 1);
- BUG();
+ return -1;
}
ret = ext2_try_to_allocate(sb, group, bitmap_bh, grp_goal,
&num, &my_rsv->rsv_window);