From: "Darrick J. Wong" <djwong@us.ibm.com>
To: Andreas Dilger <adilger.kernel@dilger.ca>
Cc: Theodore Tso <tytso@mit.edu>,
Sunil Mushran <sunil.mushran@oracle.com>,
Martin K Petersen <martin.petersen@oracle.com>,
Greg Freemyer <greg.freemyer@gmail.com>,
Amir Goldstein <amir73il@gmail.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
Andi Kleen <andi@firstfloor.org>, Mingming Cao <cmm@us.ibm.com>,
Joel Becker <jlbec@evilplan.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-ext4@vger.kernel.org, Coly Li <colyli@gmail.com>
Subject: Re: [PATCH 03/22] ext4: Record the checksum algorithm in use in the superblock
Date: Tue, 6 Dec 2011 23:42:57 -0800 [thread overview]
Message-ID: <20111207074257.GJ7137@tux1.beaverton.ibm.com> (raw)
In-Reply-To: <E0964BB6-793D-49AF-A2B0-20748C6DAE2B@dilger.ca>
On Tue, Dec 06, 2011 at 10:01:35PM -0700, Andreas Dilger wrote:
> On 2011-11-28, at 4:26 PM, Darrick J. Wong wrote:
> > Record the type of checksum algorithm we're using for metadata in the
> > superblock, in case we ever want/need to change the algorithm.
> >
> > @@ -982,6 +982,9 @@ extern void ext4_set_bits(void *bm, int cur, int len);
> > +/* Metadata checksum algorithm codes */
> > +#define EXT4_CRC32C_CHKSUM 1
>
> It might make sense to add a constant for the existing CRC16 type:
>
> #define EXT4_CRC16_CHKSUM 0
> #define EXT4_CRC32C_CHKSUM 1
> #define EXT4_CHKSUM_MAX 1
I disagree -- this field is only defined if metadata_csum is set, and most of
the checksumming code doesn't know what crc16 is. If a user somehow set the
checksum type to "crc16", the code would keep using crc32c.
If we ever extend ext4_chksum() to support other algorithms I suppose we could
make it smart enough to switch algorithms based on the field setting, but I
don't really want to do for crc16. :)
> > +static int ext4_verify_csum_type(struct super_block *sb,
> > + struct ext4_super_block *es)
> > +{
> > + if (!EXT4_HAS_RO_COMPAT_FEATURE(sb,
> > + EXT4_FEATURE_RO_COMPAT_METADATA_CSUM))
> > + return 1;
> > +
> > + return es->s_checksum_type == EXT4_CRC32C_CHKSUM;
> > +}
>
> Then this checks "return es->s_checksum_type <= EXT4_CHKSUM_MAX;".
Not really -- this would allow us to mount a file system with metadata_csum=1
and csum_type=crc16, and crc16 is not supported by most of the checksumming
code. I'd rather have the code reject the mount and send fs in for fsck, since
crc32c is the only one it knows about.
> > @@ -3182,6 +3192,14 @@ static int ext4_fill_super(struct super_block *sb,
> > + /* Check for a known checksum algorithm */
> > + if (!ext4_verify_csum_type(sb, es)) {
> > + ext4_msg(sb, KERN_ERR, "VFS: Found ext4 filesystem with "
> > + "unknown checksum algorithm.");
>
> It would be useful if this error message printed the checksum type.
Agreed.
--D
>
> Cheers, Andreas
>
>
>
>
>
next prev parent reply other threads:[~2011-12-07 7:42 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-28 23:26 [PATCH v2.1 00/22] ext4: Add metadata checksumming Darrick J. Wong
2011-11-28 23:26 ` [PATCH 01/22] ext4: Create a new BH_Verified flag to avoid unnecessary metadata validation Darrick J. Wong
2011-11-28 23:26 ` [PATCH 02/22] ext4: Create a rocompat flag for extended metadata checksumming Darrick J. Wong
2011-11-28 23:26 ` [PATCH 03/22] ext4: Record the checksum algorithm in use in the superblock Darrick J. Wong
[not found] ` <E0964BB6-793D-49AF-A2B0-20748C6DAE2B@dilger.ca>
2011-12-07 7:42 ` Darrick J. Wong [this message]
2011-11-28 23:26 ` [PATCH 04/22] ext4: Only call out to crc32c if necessary Darrick J. Wong
2011-11-28 23:26 ` [PATCH 05/22] ext4: Calculate and verify superblock checksum Darrick J. Wong
2011-11-28 23:26 ` [PATCH 06/22] ext4: Calculate and verify inode checksums Darrick J. Wong
2011-11-28 23:27 ` [PATCH 07/22] ext4: Create bitmap checksum helper functions Darrick J. Wong
2011-12-05 16:33 ` Ted Ts'o
2011-12-05 20:31 ` Darrick J. Wong
2011-12-05 23:54 ` Darrick J. Wong
2011-12-06 17:19 ` Andreas Dilger
2011-12-06 20:59 ` Darrick J. Wong
2011-11-28 23:27 ` [PATCH 08/22] ext4: Calculate and verify checksums for inode bitmaps Darrick J. Wong
2011-11-28 23:27 ` [PATCH 09/22] ext4: Calculate and verify block bitmap checksum Darrick J. Wong
2011-11-28 23:27 ` [PATCH 10/22] ext4: Verify and calculate checksums for extent tree blocks Darrick J. Wong
2011-12-05 16:40 ` Ted Ts'o
2011-12-05 19:50 ` Darrick J. Wong
2011-11-28 23:27 ` [PATCH 11/22] ext4: Calculate and verify checksums for htree nodes Darrick J. Wong
2011-11-28 23:27 ` [PATCH 12/22] ext4: Calculate and verify checksums of directory leaf blocks Darrick J. Wong
2011-11-28 23:27 ` [PATCH 13/22] ext4: Calculate and verify checksums of extended attribute blocks Darrick J. Wong
2011-11-28 23:27 ` [PATCH 14/22] ext4: Add new feature to make block group checksums use metadata_csum algorithm Darrick J. Wong
2011-11-28 23:28 ` [PATCH 15/22] ext4: Add checksums to the MMP block Darrick J. Wong
2011-11-28 23:28 ` [PATCH 16/22] jbd2: Update structure definitions and flags to support extended checksumming Darrick J. Wong
2011-11-28 23:28 ` [PATCH 17/22] jbd2: Grab a reference to the crc32c driver only when necessary Darrick J. Wong
2011-11-28 23:28 ` [PATCH 18/22] jbd2: Update structure definitions and flags to support extended checksumming Darrick J. Wong
2011-11-28 23:28 ` [PATCH 19/22] jbd2: Checksum revocation blocks Darrick J. Wong
2011-11-28 23:28 ` [PATCH 20/22] jbd2: Checksum descriptor blocks Darrick J. Wong
2011-11-28 23:28 ` [PATCH 21/22] jbd2: Checksum commit blocks Darrick J. Wong
2011-11-28 23:28 ` [PATCH 22/22] jbd2: Checksum data blocks that are stored in the journal Darrick J. Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111207074257.GJ7137@tux1.beaverton.ibm.com \
--to=djwong@us.ibm.com \
--cc=adilger.kernel@dilger.ca \
--cc=amir73il@gmail.com \
--cc=andi@firstfloor.org \
--cc=cmm@us.ibm.com \
--cc=colyli@gmail.com \
--cc=greg.freemyer@gmail.com \
--cc=jlbec@evilplan.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=sunil.mushran@oracle.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).