On Wed, Jul 02, 2025 at 12:39:33PM +0300, Fedor Pchelkin wrote: > Use cmp_int() to yield the result of a three-way-comparison instead of > performing subtractions with extra casts. Thus also rename the function > to make its name clearer in purpose. > > Found by Linux Verification Center (linuxtesting.org). > > Signed-off-by: Fedor Pchelkin <pchelkin@xxxxxxxxx> > --- > > v2: rename the "diff_two_ptrs" part (Darrick) Looks good now, thanks for the cmp_int cleanups! Reviewed-by: "Darrick J. Wong" <djwong@xxxxxxxxxx> --D > > fs/xfs/libxfs/xfs_btree.c | 8 ++++---- > fs/xfs/libxfs/xfs_btree.h | 6 +++--- > fs/xfs/scrub/btree.c | 2 +- > 3 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c > index d3591728998e..a61211d253f1 100644 > --- a/fs/xfs/libxfs/xfs_btree.c > +++ b/fs/xfs/libxfs/xfs_btree.c > @@ -5353,15 +5353,15 @@ xfs_btree_count_blocks( > } > > /* Compare two btree pointers. */ > -int64_t > -xfs_btree_diff_two_ptrs( > +int > +xfs_btree_cmp_two_ptrs( > struct xfs_btree_cur *cur, > const union xfs_btree_ptr *a, > const union xfs_btree_ptr *b) > { > if (cur->bc_ops->ptr_len == XFS_BTREE_LONG_PTR_LEN) > - return (int64_t)be64_to_cpu(a->l) - be64_to_cpu(b->l); > - return (int64_t)be32_to_cpu(a->s) - be32_to_cpu(b->s); > + return cmp_int(be64_to_cpu(a->l), be64_to_cpu(b->l)); > + return cmp_int(be32_to_cpu(a->s), be32_to_cpu(b->s)); > } > > struct xfs_btree_has_records { > diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h > index 1bf20d509ac9..60e78572e725 100644 > --- a/fs/xfs/libxfs/xfs_btree.h > +++ b/fs/xfs/libxfs/xfs_btree.h > @@ -519,9 +519,9 @@ struct xfs_btree_block *xfs_btree_get_block(struct xfs_btree_cur *cur, > int level, struct xfs_buf **bpp); > bool xfs_btree_ptr_is_null(struct xfs_btree_cur *cur, > const union xfs_btree_ptr *ptr); > -int64_t xfs_btree_diff_two_ptrs(struct xfs_btree_cur *cur, > - const union xfs_btree_ptr *a, > - const union xfs_btree_ptr *b); > +int xfs_btree_cmp_two_ptrs(struct xfs_btree_cur *cur, > + const union xfs_btree_ptr *a, > + const union xfs_btree_ptr *b); > void xfs_btree_get_sibling(struct xfs_btree_cur *cur, > struct xfs_btree_block *block, > union xfs_btree_ptr *ptr, int lr); > diff --git a/fs/xfs/scrub/btree.c b/fs/xfs/scrub/btree.c > index fe678a0438bc..cd6f0ff382a7 100644 > --- a/fs/xfs/scrub/btree.c > +++ b/fs/xfs/scrub/btree.c > @@ -306,7 +306,7 @@ xchk_btree_block_check_sibling( > if (pbp) > xchk_buffer_recheck(bs->sc, pbp); > > - if (xfs_btree_diff_two_ptrs(cur, pp, sibling)) > + if (xfs_btree_cmp_two_ptrs(cur, pp, sibling)) > xchk_btree_set_corrupt(bs->sc, cur, level); > out: > xfs_btree_del_cursor(ncur, XFS_BTREE_ERROR); > -- > 2.50.0 > >