diff options
author | Dave Chinner <david@fromorbit.com> | 2010-01-19 20:04:53 -0500 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2010-01-19 20:04:53 -0500 |
commit | 587aa0feb74ffe3239b5e26ff5d017ba9f5daec9 (patch) | |
tree | 3979b8690cf6364afbe51c64a628102c97315064 /fs/xfs/xfs_mount.c | |
parent | f0a0eaa8da08ebc6519cacd731df05bbb4ca47ce (diff) |
xfs: rearrange xfs_mod_sb() to avoid array subscript warning
gcc warns of an array subscript out of bounds in xfs_mod_sb().
The code is written in such a way that if the array subscript is
out of bounds, then it will assert fail. Rearrange the code to
avoid the bounds check warning.
Signed-off-by: Dave Chinner <david@fromorbit.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/xfs_mount.c')
-rw-r--r-- | fs/xfs/xfs_mount.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 0df5045abd3b..d95bd1809f3c 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c | |||
@@ -1631,15 +1631,14 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields) | |||
1631 | xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields); | 1631 | xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields); |
1632 | 1632 | ||
1633 | /* find modified range */ | 1633 | /* find modified range */ |
1634 | f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); | ||
1635 | ASSERT((1LL << f) & XFS_SB_MOD_BITS); | ||
1636 | last = xfs_sb_info[f + 1].offset - 1; | ||
1634 | 1637 | ||
1635 | f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); | 1638 | f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); |
1636 | ASSERT((1LL << f) & XFS_SB_MOD_BITS); | 1639 | ASSERT((1LL << f) & XFS_SB_MOD_BITS); |
1637 | first = xfs_sb_info[f].offset; | 1640 | first = xfs_sb_info[f].offset; |
1638 | 1641 | ||
1639 | f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); | ||
1640 | ASSERT((1LL << f) & XFS_SB_MOD_BITS); | ||
1641 | last = xfs_sb_info[f + 1].offset - 1; | ||
1642 | |||
1643 | xfs_trans_log_buf(tp, bp, first, last); | 1642 | xfs_trans_log_buf(tp, bp, first, last); |
1644 | } | 1643 | } |
1645 | 1644 | ||