mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 08:08:54 +00:00
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>
This commit is contained in:
parent
f0a0eaa8da
commit
587aa0feb7
1 changed files with 3 additions and 4 deletions
|
@ -1631,15 +1631,14 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields)
|
||||||
xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields);
|
xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields);
|
||||||
|
|
||||||
/* find modified range */
|
/* find modified range */
|
||||||
|
f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields);
|
||||||
|
ASSERT((1LL << f) & XFS_SB_MOD_BITS);
|
||||||
|
last = xfs_sb_info[f + 1].offset - 1;
|
||||||
|
|
||||||
f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields);
|
f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields);
|
||||||
ASSERT((1LL << f) & XFS_SB_MOD_BITS);
|
ASSERT((1LL << f) & XFS_SB_MOD_BITS);
|
||||||
first = xfs_sb_info[f].offset;
|
first = xfs_sb_info[f].offset;
|
||||||
|
|
||||||
f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields);
|
|
||||||
ASSERT((1LL << f) & XFS_SB_MOD_BITS);
|
|
||||||
last = xfs_sb_info[f + 1].offset - 1;
|
|
||||||
|
|
||||||
xfs_trans_log_buf(tp, bp, first, last);
|
xfs_trans_log_buf(tp, bp, first, last);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue