lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20110921204042.GL12086@tux1.beaverton.ibm.com>
Date:	Wed, 21 Sep 2011 13:40:42 -0700
From:	"Darrick J. Wong" <djwong@...ibm.com>
To:	Amir Goldstein <amir73il@...il.com>
Cc:	"Theodore Ts'o" <tytso@....edu>,
	Ext4 Developers List <linux-ext4@...r.kernel.org>
Subject: Re: [PATCH 1/2] libext2fs: add metadata checksum and snapshot
	feature flags

On Wed, Sep 21, 2011 at 11:03:57AM +0300, Amir Goldstein wrote:
> On Tue, Sep 20, 2011 at 9:56 PM, Darrick J. Wong <djwong@...ibm.com> wrote:
> > On Thu, Sep 15, 2011 at 06:50:51PM -0400, Theodore Ts'o wrote:
<snip>
> >> diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
> >> index 4fec5db..1c86cb2 100644
> >> --- a/lib/ext2fs/ext2_fs.h
> >> +++ b/lib/ext2fs/ext2_fs.h
> >> @@ -142,7 +142,9 @@ struct ext2_group_desc
> >>       __u16   bg_free_inodes_count;   /* Free inodes count */
> >>       __u16   bg_used_dirs_count;     /* Directories count */
> >>       __u16   bg_flags;
> >> -     __u32   bg_reserved[2];
> >> +     __u32   bg_exclude_bitmap_lo;   /* Exclude bitmap for snapshots */
> >> +     __u16   bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
> >> +     __u16   bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
> >>       __u16   bg_itable_unused;       /* Unused inodes count */
> >>       __u16   bg_checksum;            /* crc16(s_uuid+grouo_num+group_desc)*/
> >>  };
> >> @@ -159,7 +161,9 @@ struct ext4_group_desc
> >>       __u16   bg_free_inodes_count;   /* Free inodes count */
> >>       __u16   bg_used_dirs_count;     /* Directories count */
> >>       __u16   bg_flags;               /* EXT4_BG_flags (INODE_UNINIT, etc) */
> >> -     __u32   bg_reserved[2];         /* Likely block/inode bitmap checksum */
> >> +     __u32   bg_exclude_bitmap_lo;   /* Exclude bitmap for snapshots */
> >> +     __u16   bg_block_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
> >> +     __u16   bg_inode_bitmap_csum_lo;/* crc32c(s_uuid+grp_num+bitmap) LSB */
> >>       __u16   bg_itable_unused;       /* Unused inodes count */
> >>       __u16   bg_checksum;            /* crc16(sb_uuid+group+desc) */
> >>       __u32   bg_block_bitmap_hi;     /* Blocks bitmap block MSB */
> >> @@ -169,7 +173,10 @@ struct ext4_group_desc
> >>       __u16   bg_free_inodes_count_hi;/* Free inodes count MSB */
> >>       __u16   bg_used_dirs_count_hi;  /* Directories count MSB */
> >>       __u16   bg_itable_unused_hi;    /* Unused inodes count MSB */
> >> -     __u32   bg_reserved2[3];
> >> +     __u32   bg_exclude_bitmap_hi;   /* Exclude bitmap block MSB */
> >> +     __u16   bg_block_bitmap_csum_hi;/* crc32c(s_uuid+grp_num+bitmap) MSB */
> >> +     __u16   bg_inode_bitmap_csum_hi;/* crc32c(s_uuid+grp_num+bitmap) MSB */
> >> +     __u32   bg_reserved;
> >
> > Should we attach a checksum to the exclude bitmap?  That would, unfortunately,
> > put the 64-byte block group pretty close to full, unless we're ok with making
> > the bg even bigger...
> 
> Good point.
> My initial approach (which I probably expressed somewhere) was that when
> exclude_bitmap feature is set, the block bitmap checksum should cover both
> block bitmap and exclude bitmap.
> The reason being that exclude bitmap adds little entropy over block bitmap:
> - it should always be a sub set of block bitmap bits
> - clearing exclude bit is done together with clearing the block used bit
> - the only case of modifying exclude bitmap only is when a used block becomes
>   excluded (a.k.a moved to snapshot)
> 
> so how do you feel about compressing 2 blocks into 16bits of checksum :-/?

Hrm.... is it generally the case that both block and exclude bitmaps are loaded
at the same time?  I don't think it'd be difficult to checksum both blocks
unless it's common that one of the two are not in memory.

--D

--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ