On 11 Apr 2022 at 06:01, Dave Chinner wrote: > 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned > fields to be unsigned. > > We also pass the fields to log to xfs_btree_offsets() as a uint32_t > all cases now. I have no idea why we made that parameter a int64_t > in the first place, but while we are fixing this up change it to > a uint32_t field, too. > Looks good. Reviewed-by: Chandan Babu R <chandan.babu@xxxxxxxxxx> > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > fs/xfs/libxfs/xfs_btree.c | 10 +++++----- > fs/xfs/libxfs/xfs_btree.h | 26 +++++++++++++------------- > 2 files changed, 18 insertions(+), 18 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c > index c1500b238520..a8c79e760d8a 100644 > --- a/fs/xfs/libxfs/xfs_btree.c > +++ b/fs/xfs/libxfs/xfs_btree.c > @@ -751,20 +751,20 @@ xfs_btree_lastrec( > */ > void > xfs_btree_offsets( > - int64_t fields, /* bitmask of fields */ > + uint32_t fields, /* bitmask of fields */ > const short *offsets, /* table of field offsets */ > int nbits, /* number of bits to inspect */ > int *first, /* output: first byte offset */ > int *last) /* output: last byte offset */ > { > int i; /* current bit number */ > - int64_t imask; /* mask for current bit number */ > + uint32_t imask; /* mask for current bit number */ > > ASSERT(fields != 0); > /* > * Find the lowest bit, so the first byte offset. > */ > - for (i = 0, imask = 1LL; ; i++, imask <<= 1) { > + for (i = 0, imask = 1u; ; i++, imask <<= 1) { > if (imask & fields) { > *first = offsets[i]; > break; > @@ -773,7 +773,7 @@ xfs_btree_offsets( > /* > * Find the highest bit, so the last byte offset. > */ > - for (i = nbits - 1, imask = 1LL << i; ; i--, imask >>= 1) { > + for (i = nbits - 1, imask = 1u << i; ; i--, imask >>= 1) { > if (imask & fields) { > *last = offsets[i + 1] - 1; > break; > @@ -1456,7 +1456,7 @@ void > xfs_btree_log_block( > struct xfs_btree_cur *cur, /* btree cursor */ > struct xfs_buf *bp, /* buffer containing btree block */ > - int fields) /* mask of fields: XFS_BB_... */ > + uint32_t fields) /* mask of fields: XFS_BB_... */ > { > int first; /* first byte offset logged */ > int last; /* last byte offset logged */ > diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h > index 22d9f411fde6..eef27858a013 100644 > --- a/fs/xfs/libxfs/xfs_btree.h > +++ b/fs/xfs/libxfs/xfs_btree.h > @@ -68,19 +68,19 @@ uint32_t xfs_btree_magic(int crc, xfs_btnum_t btnum); > /* > * For logging record fields. > */ > -#define XFS_BB_MAGIC (1 << 0) > -#define XFS_BB_LEVEL (1 << 1) > -#define XFS_BB_NUMRECS (1 << 2) > -#define XFS_BB_LEFTSIB (1 << 3) > -#define XFS_BB_RIGHTSIB (1 << 4) > -#define XFS_BB_BLKNO (1 << 5) > -#define XFS_BB_LSN (1 << 6) > -#define XFS_BB_UUID (1 << 7) > -#define XFS_BB_OWNER (1 << 8) > +#define XFS_BB_MAGIC (1u << 0) > +#define XFS_BB_LEVEL (1u << 1) > +#define XFS_BB_NUMRECS (1u << 2) > +#define XFS_BB_LEFTSIB (1u << 3) > +#define XFS_BB_RIGHTSIB (1u << 4) > +#define XFS_BB_BLKNO (1u << 5) > +#define XFS_BB_LSN (1u << 6) > +#define XFS_BB_UUID (1u << 7) > +#define XFS_BB_OWNER (1u << 8) > #define XFS_BB_NUM_BITS 5 > -#define XFS_BB_ALL_BITS ((1 << XFS_BB_NUM_BITS) - 1) > +#define XFS_BB_ALL_BITS ((1u << XFS_BB_NUM_BITS) - 1) > #define XFS_BB_NUM_BITS_CRC 9 > -#define XFS_BB_ALL_BITS_CRC ((1 << XFS_BB_NUM_BITS_CRC) - 1) > +#define XFS_BB_ALL_BITS_CRC ((1u << XFS_BB_NUM_BITS_CRC) - 1) > > /* > * Generic stats interface > @@ -345,7 +345,7 @@ xfs_btree_dup_cursor( > */ > void > xfs_btree_offsets( > - int64_t fields, /* bitmask of fields */ > + uint32_t fields, /* bitmask of fields */ > const short *offsets,/* table of field offsets */ > int nbits, /* number of bits to inspect */ > int *first, /* output: first byte offset */ > @@ -435,7 +435,7 @@ bool xfs_btree_sblock_verify_crc(struct xfs_buf *); > /* > * Internal btree helpers also used by xfs_bmap.c. > */ > -void xfs_btree_log_block(struct xfs_btree_cur *, struct xfs_buf *, int); > +void xfs_btree_log_block(struct xfs_btree_cur *, struct xfs_buf *, uint32_t); > void xfs_btree_log_recs(struct xfs_btree_cur *, struct xfs_buf *, int, int); > > /* -- chandan