]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ext4: add a hint for block bitmap corrupt state in mb_groups
authorZhang Yi <yi.zhang@huawei.com>
Fri, 19 Jan 2024 06:11:54 +0000 (14:11 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 Apr 2024 10:59:47 +0000 (12:59 +0200)
[ Upstream commit 68ee261fb15457ecb17e3683cb4e6a4792ca5b71 ]

If one group is marked as block bitmap corrupted, its free blocks cannot
be used and its free count is also deducted from the global
sbi->s_freeclusters_counter. User might be confused about the absent
free space because we can't query the information about corrupted block
groups except unreliable error messages in syslog. So add a hint to show
block bitmap corrupted groups in mb_groups.

Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20240119061154.1525781-1-yi.zhang@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/ext4/mballoc.c

index 6ce59e2ac2d47d2a937a4da99df3b48af974a0f7..c1d632725c2c0a9cb5daa1acc577ed38323fbf4e 100644 (file)
@@ -2591,7 +2591,10 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
        for (i = 0; i <= 13; i++)
                seq_printf(seq, " %-5u", i <= blocksize_bits + 1 ?
                                sg.info.bb_counters[i] : 0);
-       seq_puts(seq, " ]\n");
+       seq_puts(seq, " ]");
+       if (EXT4_MB_GRP_BBITMAP_CORRUPT(&sg.info))
+               seq_puts(seq, " Block bitmap corrupted!");
+       seq_puts(seq, "\n");
 
        return 0;
 }