All of lore.kernel.org
 help / color / mirror / Atom feed
From: Theodore Tso <tytso@mit.edu>
To: Andreas Dilger <adilger@sun.com>
Cc: linux-ext4@vger.kernel.org, "Jose R. Santos" <jrs@us.ibm.com>,
	Andreas Dilger <adilger@clusterfs.com>
Subject: Re: [PATCH, REWORKED 01/11] Add initial checksum support for the gdt_checksum/uninit_group feature
Date: Mon, 17 Mar 2008 14:05:05 -0400	[thread overview]
Message-ID: <20080317180505.GG8368@mit.edu> (raw)
In-Reply-To: <20080317172254.GF3542@webber.adilger.int>

On Tue, Mar 18, 2008 at 01:22:54AM +0800, Andreas Dilger wrote:
> On Mar 17, 2008  09:28 -0400, Theodore Ts'o wrote:
> > +STATIC __u16 ext2fs_group_desc_csum(ext2_filsys fs, dgrp_t group)
  ....
> > +	if (fs->super->s_feature_ro_compat & EXT4_FEATURE_RO_COMPAT_GDT_CSUM) {
> > +		int offset = offsetof(struct ext2_group_desc, bg_checksum);
> > +
  ...
> > +		offset += sizeof(desc->bg_checksum); /* skip checksum */
> > +		assert(offset == sizeof(*desc));
> 
> Note that this assertion needs to be removed when the group descriptor
> becomes larger, unless ext2_group_desc never changes in the future..

Yeah, I looked at this, and was half tempted to remove it.

Indeed ext2_group_desc will never change in the future.  Too many
things would break if we change it.  That's why there is an
ext4_group_desc which looks exactly like ext2_group_desc for the first
32 bytes, and adds the high 32-bits for the various fields in the
second 32-bytes.

But if ext2_group_desc is never going to change, then there's no real
good reason to use a run-time check here.  Better to turn it into a
compile time check, using #error.  The tricky part is doing it in a
way which is ANSI-C compliant (or maybe we just wrap it in a #ifdef
GCC and only do the sanity check if you are compiling with GCC).

    	     	    	   	    - Ted

  reply	other threads:[~2008-03-17 18:05 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-17 13:28 Respin of the uninit_group patches Theodore Ts'o
2008-03-17 13:28 ` [PATCH, REWORKED 01/11] Add initial checksum support for the gdt_checksum/uninit_group feature Theodore Ts'o
2008-03-17 13:28   ` [PATCH, REWORKED 02/11] Add uninit block group support to various libext2fs functions Theodore Ts'o
2008-03-17 13:28     ` [PATCH, REWORKED 03/11] Rename feature name from gdt_checksum to uninit_groups Theodore Ts'o
2008-03-17 13:28       ` [PATCH, REWORKED 04/11] Add support for creating filesystems using uninit block group Theodore Ts'o
2008-03-17 13:28         ` [PATCH, REWORKED 05/11] Make tune2fs uninit block group aware Theodore Ts'o
2008-03-17 13:28           ` [PATCH, REWORKED 06/11] Make dumpe2fs " Theodore Ts'o
2008-03-17 13:28             ` [PATCH, REWORKED 07/11] Make resize2fs " Theodore Ts'o
2008-03-17 13:28               ` [PATCH, REWORKED 08/11] Make debugfs " Theodore Ts'o
2008-03-17 13:28                 ` [PATCH, REWORKED 09/11] Make e2fsck " Theodore Ts'o
2008-03-17 13:28                   ` [PATCH, REWORKED 10/11] Add new m_lazy test case Theodore Ts'o
2008-03-17 13:28                     ` [PATCH, REWORKED 11/11] Add m_uninit " Theodore Ts'o
2008-03-17 17:22   ` [PATCH, REWORKED 01/11] Add initial checksum support for the gdt_checksum/uninit_group feature Andreas Dilger
2008-03-17 18:05     ` Theodore Tso [this message]
2008-03-18  0:26       ` Andreas Dilger
2008-03-18 23:33 ` Respin of the uninit_group patches Andreas Dilger
2008-03-25  8:40 ` Andreas Dilger
2008-03-31 23:36   ` [PATCH, E2FSPROGS] Improve ext4 feature descriptions in mke2fs and tune2fs man pages Theodore Ts'o
2008-03-31 23:36     ` [PATCH, E2FSPROGS] Fix the copyright notice in lib/ext2fs/tst_csum.c to be GPLv2 only Theodore Ts'o
2008-03-31 23:36       ` [PATCH, E2FSPROGS] debugfs: Add support for "set_block_group <bg_num> checksum calc" Theodore Ts'o
2008-03-31 23:36         ` [PATCH, E2FSPROGS] ext2fs_set_gdt_csum(): Clean up superblock dirty flag handling Theodore Ts'o
2008-03-31 23:36           ` [PATCH, E2FSPROGS] ext2fs_set_gdt_csum(): Force the last block group to have a valid block bitmap Theodore Ts'o
2008-03-31 23:36             ` [PATCH, E2FSPROGS] ext2fs_set_gdt_csum(): Return an error code on errors instead of void Theodore Ts'o
2008-03-31 23:36               ` [PATCH, E2FSPROGS] libext2fs: Micro-optimization in inode scan code Theodore Ts'o
2008-03-31 23:36                 ` [PATCH, E2FSPROGS] Split the m_lazy test case into two cases: m_lazy and m_lazy_resize Theodore Ts'o
2008-03-31 23:36                   ` [PATCH, E2FSPROGS] e2fsck: Add check to enforce a valid block bitmap in last block group Theodore Ts'o
2008-03-31 23:36                     ` [PATCH, E2FSPROGS] Fix trailing whitespace in e2fsck/problem.[ch] Theodore Ts'o
2008-03-31 23:36                       ` [PATCH, E2FSPROGS] Add new regression test: f_uninit_last_uninit Theodore Ts'o
2008-04-01  0:00                       ` [PATCH, E2FSPROGS] Fix trailing whitespace in e2fsck/problem.[ch] Theodore Tso
2008-03-31 23:53               ` [PATCH, E2FSPROGS] ext2fs_set_gdt_csum(): Return an error code on errors instead of void Theodore Tso
2008-03-31 23:52             ` [PATCH, E2FSPROGS] ext2fs_set_gdt_csum(): Force the last block group to have a valid block bitmap Theodore Tso
2008-03-31 23:47           ` [PATCH, E2FSPROGS] ext2fs_set_gdt_csum(): Clean up superblock dirty flag handling Theodore Tso
2008-03-31 23:46         ` [PATCH, E2FSPROGS] debugfs: Add support for "set_block_group <bg_num> checksum calc" Theodore Tso
2008-03-25  9:15 ` Respin of the uninit_group patches Andreas Dilger

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=20080317180505.GG8368@mit.edu \
    --to=tytso@mit.edu \
    --cc=adilger@clusterfs.com \
    --cc=adilger@sun.com \
    --cc=jrs@us.ibm.com \
    --cc=linux-ext4@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.