On Tue, Jan 06, 2009 at 01:46:23PM +0100, Thiemo Nagel wrote: >>> @@ -2160,6 +2162,15 @@ >>> EXT4_BLOCKS_PER_GROUP(sb) - 1); >>> do_div(blocks_count, EXT4_BLOCKS_PER_GROUP(sb)); >>> sbi->s_groups_count = blocks_count; >>> + if (sbi->s_groups_count > ((uint64_t)1<<32) - EXT4_DESC_PER_BLOCK(sb)) { >> >> This can't possibly work, given that s_groups_count is an unsigned >> int. > > I'm casting to uint64_t, so in my opinion it should work on all > architectures. ... which doesn't help given that sbi->s_groups_count is 32 bits on x86_32 machines if it is unsigned long, and always 32 bits once ext4_group_t was changed to be an unsigned int. - 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