On Tue, Dec 17, 2013 at 01:19:04AM -0700, Andreas Dilger wrote: > The s_desc_size in the superblock specifies the group descriptor > size in bytes, but in various places the EXT4_FEATURE_INCOMPAT_64BIT > flag implies that the descriptor size is EXT2_MIN_DESC_SIZE_64BIT > (64 bytes) instead of checking the actual size. In other places, > the s_desc_size field is used without checking for INCOMPAT_64BIT. > > In the case of ext2fs_group_desc() the s_desc_size was being ignored, > and assumed to be sizeof(struct ext4_group_desc), which would result > in garbage for any but the first group descriptor. Similarly, in > ext2fs_group_desc_csum() and print_csum() they assumed that the > maximum group descriptor size was sizeof(struct ext4_group_desc). > Fix these functions to use the actual superblock s_desc_size if > INCOMPAT_64BIT. > > Conversely, in ext2fs_swap_group_desc2() s_desc_size was used > without checking for INCOMPAT_64BIT being set. > > The e2fsprogs behaviour is different than that of the kernel, > which always checks INCOMPAT_64BIT, and only uses s_desc_size to > determine the offset of group descriptors and what range of bytes > to checksum. > > Allow specifying the s_desc_size field at mke2fs time with the > "-E desc_size=NNN" option. Allow a power-of-two s_desc_size > value up to s_blocksize if INCOMPAT_64BIT is specified. This > is not expected to be used by regular users at this time, so it > is not currently documented in the mke2fs usage or man page. > > Add m_desc_size_128, f_desc_size_128, and f_desc_bad test cases to > verify mke2fs and e2fsck handling of larger group descriptor sizes. > > Signed-off-by: Andreas Dilger <adilger@xxxxxxxxx> 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