| From afeb89bc5f647077edd5c906b639596fdde99052 Mon Sep 17 00:00:00 2001 |
| From: Josh Triplett <josh@joshtriplett.org> |
| Date: Sat, 28 Mar 2020 14:54:01 -0700 |
| Subject: [PATCH] ext4: fix incorrect group count in ext4_fill_super error |
| message |
| |
| commit df41460a21b06a76437af040d90ccee03888e8e5 upstream. |
| |
| ext4_fill_super doublechecks the number of groups before mounting; if |
| that check fails, the resulting error message prints the group count |
| from the ext4_sb_info sbi, which hasn't been set yet. Print the freshly |
| computed group count instead (which at that point has just been computed |
| in "blocks_count"). |
| |
| Signed-off-by: Josh Triplett <josh@joshtriplett.org> |
| Fixes: 4ec1102813798 ("ext4: Add sanity checks for the superblock before mounting the filesystem") |
| Link: https://lore.kernel.org/r/8b957cd1513fcc4550fe675c10bcce2175c33a49.1585431964.git.josh@joshtriplett.org |
| Signed-off-by: Theodore Ts'o <tytso@mit.edu> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/fs/ext4/super.c b/fs/ext4/super.c |
| index c88c6182e502..5ed361d14a66 100644 |
| --- a/fs/ext4/super.c |
| +++ b/fs/ext4/super.c |
| @@ -4224,9 +4224,9 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) |
| EXT4_BLOCKS_PER_GROUP(sb) - 1); |
| do_div(blocks_count, EXT4_BLOCKS_PER_GROUP(sb)); |
| if (blocks_count > ((uint64_t)1<<32) - EXT4_DESC_PER_BLOCK(sb)) { |
| - ext4_msg(sb, KERN_WARNING, "groups count too large: %u " |
| + ext4_msg(sb, KERN_WARNING, "groups count too large: %llu " |
| "(block count %llu, first data block %u, " |
| - "blocks per group %lu)", sbi->s_groups_count, |
| + "blocks per group %lu)", blocks_count, |
| ext4_blocks_count(es), |
| le32_to_cpu(es->s_first_data_block), |
| EXT4_BLOCKS_PER_GROUP(sb)); |
| -- |
| 2.7.4 |
| |