On Mon, 2007-06-04 at 11:57 -0600, Andreas Dilger wrote: > On Jun 04, 2007 11:32 -0500, Jose R. Santos wrote: > > Set the journals JBD2_FEATURE_INCOMPAT_64BIT on devices with more > > than 32bit block sizes during mount time. This ensure proper record > > lenth when writing to the journal. > > > > Signed-off-by: Jose R. Santos <jrs@xxxxxxxxxx> > > --- > > fs/ext4/super.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > Index: linux-2.6.22-rc3/fs/ext4/super.c > > =================================================================== > > --- linux-2.6.22-rc3.orig/fs/ext4/super.c 2007-06-04 11:01:20.028360650 -0500 > > +++ linux-2.6.22-rc3/fs/ext4/super.c 2007-06-04 11:05:11.389126418 -0500 > > @@ -1824,6 +1824,17 @@ static int ext4_fill_super (struct super > > goto failed_mount3; > > } > > > > + /* > > + * Make sure to set JBD2_FEATURE_INCOMPAT_64BIT on filesystems > > + * with more that 32-bit block counts > > + */ > > + if(es->s_blocks_count_hi && This need to be le32_to_cpu(es->s_blocks_count_hi) > > + !jbd2_journal_set_features(EXT4_SB(sb)->s_journal, 0, 0, > > + JBD2_FEATURE_INCOMPAT_64BIT)){ > > + printk(KERN_ERR "ext4: Failed to set 64-bit journal feature\n"); > > + goto failed_mount4; > > + } > > + > > /* We have now updated the journal if required, so we can > > * validate the data journaling mode. */ > > switch (test_opt(sb, DATA_FLAGS)) { > > This is fine, but Linux CodingStyle would have "if (" and have ")) {". > Don't bother reposting, but whoever adds this to the ext4 git tree and/or > sending it to Andrew should make the fix. > Okay, I can added the le32_to_cpu() and fix the style, and add the following patch to ext4 patch queue. Set the journals JBD2_FEATURE_INCOMPAT_64BIT on devices with more than 32bit block sizes during mount time. This ensure proper record lenth when writing to the journal. Signed-off-by: Mingming Cao <cmm@xxxxxxxxxx> Signed-off-by: Jose R. Santos <jrs@xxxxxxxxxx> --- fs/ext4/super.c | 11 +++++++++++ 1 file changed, 11 insertions(+) Index: linux-2.6.22-rc3/fs/ext4/super.c =================================================================== --- linux-2.6.22-rc3.orig/fs/ext4/super.c 2007-06-04 11:01:20.028360650 -0500 +++ linux-2.6.22-rc3/fs/ext4/super.c 2007-06-04 11:05:11.389126418 -0500 @@ -1824,6 +1824,17 @@ static int ext4_fill_super (struct super goto failed_mount3; } + /* + * Make sure to set JBD2_FEATURE_INCOMPAT_64BIT on filesystems + * with more that 32-bit block counts + */ + if (le32_to_cpu(es->s_blocks_count_hi) && + !jbd2_journal_set_features(EXT4_SB(sb)->s_journal, 0, 0, + JBD2_FEATURE_INCOMPAT_64BIT)){ + printk(KERN_ERR "ext4: Failed to set 64-bit journal feature\n"); + goto failed_mount4; + } + /* We have now updated the journal if required, so we can * validate the data journaling mode. */ switch (test_opt(sb, DATA_FLAGS)) { - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html