From c71eaf37486bed9163ad528f51de29dd56b34fd2 Mon Sep 17 00:00:00 2001 From: zhang sanshan Date: Wed, 26 Oct 2016 21:03:37 +0800 Subject: [PATCH] Fix kernel panic when boot up Kernel will panic with below log after factory reset: EXT4-fs error (device mmcblk1p4): ext4_validate_block_bitmap:380: comm init: bg 17: block 557056: invalid block bitmap Aborting journal on device mmcblk1p4-8. Kernel panic - not syncing: EXT4-fs (device mmcblk1p4): panic forced after error Rebooting in 5 seconds. The root cause is the data type conversion issue on 32 bit devices. When a 32-bit data mutiply a 32-bit data, it will still get a 32-bit data. The 64-bit offset will be cut to 32 bit. Signed-off-by: zhang sanshan --- ext4_utils/ext4_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext4_utils/ext4_utils.c b/ext4_utils/ext4_utils.c index bfa57bc7..fa5f673d 100644 --- a/ext4_utils/ext4_utils.c +++ b/ext4_utils/ext4_utils.c @@ -179,7 +179,7 @@ static void block_device_write_sb(int fd) /* write out the backup superblocks */ for (i = 1; i < aux_info.groups; i++) { if (ext4_bg_has_super_block(i)) { - offset = info.block_size * (aux_info.first_data_block + offset = (unsigned long long)info.block_size * (aux_info.first_data_block + i * info.blocks_per_group); write_sb(fd, offset, aux_info.backup_sb[i]); } -- 2.11.0