"Jose R. Santos" <jrs@xxxxxxxxxx> writes: > On Wed, 16 Jul 2008 17:23:45 +0200 > Goswin von Brederlow <goswin-v-b@xxxxxx> wrote: >> /* >> * Set the fs block count >> */ >> void ext2fs_blocks_count_set(struct ext2_super_block *super, blk64_t blk) >> { >> super->s_blocks_count = blk; >> if (super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_64BIT) >> super->s_blocks_count_hi = (__u64) blk >> 32; >> } >> >> EXT4_FEATURE_INCOMPAT_64BIT is not set so the upper bits just get >> ignored. >> >> MfG >> Goswin >> >> PS: Should functions that chop off upper bits like that make sure they >> are 0? > > I think this is something that need to be cheched at fsck since having > these be non-zero on a non-64-bit FS should be pointing to file system > corruption. Not sure if its something that need to be done every time > we set a value on the lower bit only though. I ment checking the blk64_t blk < 2^32. And yes then the function has to return an error code EINVAL. But they should be zeroed out as well in the superblock just in case. > We could add error code here but that means that the users of the > routine need to handle the error code. Determining now if we need to > return errcode_t here now would avoid the need to change the API later. > > Ted. Any comment on this one? > > -JRS MfG Goswin -- 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