[XFS] Fix rounding bug in xfs_free_file_space found by sparse checking.
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>
This commit is contained in:
parent
87395deb0b
commit
673cdf5c72
@ -4272,7 +4272,7 @@ xfs_free_file_space(
|
|||||||
xfs_mount_t *mp;
|
xfs_mount_t *mp;
|
||||||
int nimap;
|
int nimap;
|
||||||
uint resblks;
|
uint resblks;
|
||||||
int rounding;
|
uint rounding;
|
||||||
int rt;
|
int rt;
|
||||||
xfs_fileoff_t startoffset_fsb;
|
xfs_fileoff_t startoffset_fsb;
|
||||||
xfs_trans_t *tp;
|
xfs_trans_t *tp;
|
||||||
@ -4313,8 +4313,7 @@ xfs_free_file_space(
|
|||||||
vn_iowait(vp); /* wait for the completion of any pending DIOs */
|
vn_iowait(vp); /* wait for the completion of any pending DIOs */
|
||||||
}
|
}
|
||||||
|
|
||||||
rounding = MAX((__uint8_t)(1 << mp->m_sb.sb_blocklog),
|
rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, NBPP);
|
||||||
(__uint8_t)NBPP);
|
|
||||||
ilen = len + (offset & (rounding - 1));
|
ilen = len + (offset & (rounding - 1));
|
||||||
ioffset = offset & ~(rounding - 1);
|
ioffset = offset & ~(rounding - 1);
|
||||||
if (ilen & (rounding - 1))
|
if (ilen & (rounding - 1))
|
||||||
|
Loading…
Reference in New Issue
Block a user