On Sun, Sep 11, 2011 at 02:46:08PM +0100, Hin-Tak Leung wrote: > > +?????* and difference between it > > and alloc_blksz_shift will be always in > > +?????* fs_shift. > > +?????*/ > > +??? err = > > generic_check_addressable(sb->s_blocksize_bits, > > +??? ??? ??? > > (u64)sbi->total_blocks << sbi->fs_shift); > > ??? if (err) { > > ??? ??? printk(KERN_ERR > > "hfs: filesystem size too large.\n"); > > ??? ??? goto out_free_vhdr; > > Why is the u64 needed? If it is needed, it probably means sbi->total_blocks should have been u64 in the first place. No. When you shift values to the left they obviously become larger. The total_blocks count on disk 32-bit so there is no need to store it in a larger variable in the in-core superblock. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html