The current libext2fs and e2fsck code does not handle an internal journal inode size larger than 2GB because of 32-bit overflow. The high bits of the journal are not stored on disk correctly, nor are they backed up into the superblock. This is not a problem with a large external journal device. Fix the code to correctly process the high bits of the journal size. It turns out there is also space in the superblock journal backup to hold the high bits of the journal size (in s_jnl_blocks[15]), because there are 17 words reserved for this field, but the i_blocks field only uses EXT2_N_BLOCKS = 15 blocks [0-14], and the journal size is stored in [16], so no change to the on-disk format is needed. Signed-off-by: Andreas Dilger <andreas.dilger@xxxxxxxxxx> Cheers, Andreas -- Andreas Dilger Lustre Technical Lead Oracle Corporation Canada Inc.
Attachment:
e2fsprogs-bigjournal.diff
Description: Binary data