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 <sanshan.zhang@nxp.com>
/* 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]);
}