[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <BDFF27EB-4448-4042-B8BD-7DD104AE9021@oracle.com>
Date: Thu, 5 Aug 2010 13:26:19 -0600
From: Andreas Dilger <andreas.dilger@...cle.com>
To: "Ted Ts'o" <tytso@....edu>
Cc: ext4 development <linux-ext4@...r.kernel.org>
Subject: [PATCH] allow internal journal size 2GB or larger
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@...cle.com>
Cheers, Andreas
--
Andreas Dilger
Lustre Technical Lead
Oracle Corporation Canada Inc.
Download attachment "e2fsprogs-bigjournal.diff" of type "application/octet-stream" (10064 bytes)
Powered by blists - more mailing lists