On Mon, Jun 01, 2015 at 10:33:13AM -0400, Brian Foster wrote: > The kbuild test robot reports the following compilation failure with a > 32-bit kernel configuration: > > fs/built-in.o: In function `xfs_ifree_cluster': > >> xfs_inode.c:(.text+0x17ac84): undefined reference to `__umoddi3' > > This is due to the use of the modulus operator on a 64-bit variable in > the ASSERT() added as part of the following commit: > > xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() > > This ASSERT() simply checks that the offset of the inode in a sparse > cluster is appropriately aligned. Since the maximum inode record offset > is 63 (for a 64 inode record) and the calculated offset here should be > something less than that, cast the offset value to a 32-bit type before > the mod to prevent the error. > > Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx> > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> > --- > fs/xfs/xfs_inode.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index 4c054f6..16bd01b 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -2265,7 +2265,7 @@ xfs_ifree_cluster( > * a sparse region. > */ > if ((xic->alloc & XFS_INOBT_MASK(inum - xic->first_ino)) == 0) { > - ASSERT(((inum - xic->first_ino) % > + ASSERT(((int)(inum - xic->first_ino) % > inodes_per_cluster) == 0); do_mod() Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs