On Tue, Sep 02, 2014 at 03:28:33PM -0400, TR Reardon wrote: > There may still be problems with this patch. After applying to 3.16.1, I am now getting "can't enable checksumming v2 and v3 at the same time" errors on mount. Initial mount/dismount work fine, but once fs is touched--forcing superblock update--it cannot be mounted anew. > > Note results from dumpe2fs (without recent patches) > > Journal backup: inode blocks > Checksum type: crc32c > Checksum: 0x39141b69 > Journal features: journal_incompat_revoke journal_64bit journal_async_commit journal_checksum_v2 FEATURE_I4 > Journal size: 128M > Journal length: 32768 > Journal sequence: 0x00012aa4 > Journal start: 0 > Journal checksum type: crc32c > Journal checksum: 0x3952b695 > > Seems that the old v2 flag is not cleared on dismount? Yep. Thanks for catching this. --D > > > > --- Original Message --- > > From: "Theodore Ts'o" <tytso@xxxxxxx> > Sent: August 25, 2014 10:44 PM > To: "Darrick J. Wong" <darrick.wong@xxxxxxxxxx> > Cc: linux-ext4@xxxxxxxxxxxxxxx, "TR Reardon" <thomas_reardon@xxxxxxxxxxx> > Subject: Re: [PATCH 2/2] jbd2: fix descriptor block size handling errors with journal_csum > > On Fri, Aug 15, 2014 at 01:43:59PM -0700, Darrick J. Wong wrote: > > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > > > It turns out that there are some serious problems with the on-disk > > format of journal checksum v2. The foremost is that the function to > > calculate descriptor tag size returns sizes that are too big. This > > causes alignment issues on some architectures and is compounded by the > > fact that some parts of jbd2 use the structure size (incorrectly) to > > determine the presence of a 64bit journal instead of checking the > > feature flags. > > > > Therefore, introduce journal checksum v3, which enlarges the > > descriptor block tag format to allow for full 32-bit checksums of > > journal blocks, fix the journal tag function to return the correct > > sizes, and fix the jbd2 recovery code to use feature flags to > > determine 64bitness. > > > > Add a few function helpers so we don't have to open-code quite so > > many pieces. > > > > Switching to a 16-byte block size was found to increase journal size > > overhead by a maximum of 0.1%, to convert a 32-bit journal with no > > checksumming to a 32-bit journal with checksum v3 enabled. > > > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > > Reported-by: TR Reardon <thomas_reardon@xxxxxxxxxxx> > > Thanks, applied. > > - Ted > -- > 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 -- 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