On Thu, 2008-01-17 at 21:59 +0530, Aneesh Kumar K.V wrote: > On Thu, Jan 17, 2008 at 02:09:41PM +0100, Valerie Clement wrote: > > Aneesh Kumar K.V wrote: > >> On Thu, Jan 17, 2008 at 10:43:40AM +0100, Valerie Clement wrote: > >>> Aneesh Kumar K.V wrote: > >>>> What about this ? I guess we will overflow start = start << bsbits; > >>>> > >>> Hi Aneesh, > >>> your patch below doesn't fix the issue, because as start_off is also > >>> loff_t, start_off = ac->ac_o_ex.fe_logical << bsbits also overflows. > >>> > >> > >> loff_t is 64 bits. > >> > >> typedef __kernel_loff_t loff_t; > >> typedef long long __kernel_loff_t; > >> typedef __u32 ext4_lblk_t; > >> typedef unsigned long long ext4_fsblk_t > >> > >> start_off = ac->ac_o_ex.fe_logical << bsbits; > >> > >> In the above line what we are storing in start_off is the offset in bytes.So it makes > >> sense to use the type loff_t. It is neither logical block nor physical block. > > > > Oh yes, sorry, you're right. I read too quickly. > > > > In fact, it's missing a cast : > > start_off = (loff_t) ac->ac_o_ex.fe_logical << bsbits; > > > > With that change, the test is ok. > > Updated patch below. > Thanks, folded to the mballoc-core patch Mingming > -aneesh - 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