On Fri, May 17, 2013 at 09:31:59AM +0300, Dan Carpenter wrote: > On Fri, May 17, 2013 at 09:03:14AM +1000, Dave Chinner wrote: > > As it is, the static checker missed the: > > > > rounding = max_t(uint, ....); > > > > The line before the above usage. I posted a patch to fix this this > > 2 weeks ago here: > > > > http://oss.sgi.com/pipermail/xfs/2013-May/025986.html > > > > Ah. Grand. There is still a problem with the max_t(). The shift > operation will wrap before we do the cast. It should be: It probably looks that way, but it can't overflow as mp->m_sb.sb_blocklog has a maximum value of 16 (i.e. 64k maximum filesystem block size). > > - rounding = max_t(xfs_off_t, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE); > + rounding = max_t(xfs_off_t, 1ULL << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE); So it is safe the way it is and this is not necessary. Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs