aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Chinner <david@fromorbit.com>2010-01-19 20:04:53 -0500
committerDave Chinner <david@fromorbit.com>2010-01-19 20:04:53 -0500
commit587aa0feb74ffe3239b5e26ff5d017ba9f5daec9 (patch)
tree3979b8690cf6364afbe51c64a628102c97315064
parentf0a0eaa8da08ebc6519cacd731df05bbb4ca47ce (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>
-rw-r--r--fs/xfs/xfs_mount.c7
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