Messages in this thread | | | Date | Sun, 11 Sep 2011 10:14:26 -0400 | From | Christoph Hellwig <> | Subject | Re: Kernel 3.1.0-rc4 oops when connecting iPod |
| |
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.
| |