[XFS] Fix rounding bug in xfs_free_file_space found by sparse checking.
authorNathan Scott <nathans@sgi.com>
Thu, 28 Sep 2006 00:56:26 +0000 (10:56 +1000)
committerTim Shimmin <tes@sgi.com>
Thu, 28 Sep 2006 00:56:26 +0000 (10:56 +1000)
SGI-PV: 954580
SGI-Modid: xfs-linux-melb:xfs-kern:26551a

Signed-off-by: Nathan Scott <nathans@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
fs/xfs/xfs_vnodeops.c

index 23cfa58377283b073f09503734581ea4df80edf0..4fbc3e1cac00f94e36c85fc8a2341ff2def5683b 100644 (file)
@@ -4272,7 +4272,7 @@ xfs_free_file_space(
        xfs_mount_t             *mp;
        int                     nimap;
        uint                    resblks;
-       int                     rounding;
+       uint                    rounding;
        int                     rt;
        xfs_fileoff_t           startoffset_fsb;
        xfs_trans_t             *tp;
@@ -4313,8 +4313,7 @@ xfs_free_file_space(
                vn_iowait(vp);  /* wait for the completion of any pending DIOs */
        }
 
-       rounding = MAX((__uint8_t)(1 << mp->m_sb.sb_blocklog),
-                       (__uint8_t)NBPP);
+       rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
        ilen = len + (offset & (rounding - 1));
        ioffset = offset & ~(rounding - 1);
        if (ilen & (rounding - 1))