From: zhang sanshan Date: Wed, 26 Oct 2016 13:03:37 +0000 (+0800) Subject: Fix kernel panic when boot up X-Git-Tag: android-x86-8.1-r1~68^2~13^2^2~49^2~19^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c71eaf37486bed9163ad528f51de29dd56b34fd2;p=android-x86%2Fsystem-extras.git 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 --- 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]); }