On Sun, Dec 31, 2023 at 12:06:47PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > Create a simple predicate to determine if two xfs_names are the same > objects or have the exact same name. The comparison is always case > sensitive. > > Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> > --- > fs/xfs/libxfs/xfs_dir2.h | 9 +++++++++ > fs/xfs/scrub/dir.c | 4 ++-- > 2 files changed, 11 insertions(+), 2 deletions(-) > > > diff --git a/fs/xfs/libxfs/xfs_dir2.h b/fs/xfs/libxfs/xfs_dir2.h > index 7d7cd8d808e4d..ac3c264402dda 100644 > --- a/fs/xfs/libxfs/xfs_dir2.h > +++ b/fs/xfs/libxfs/xfs_dir2.h > @@ -24,6 +24,15 @@ struct xfs_dir3_icleaf_hdr; > extern const struct xfs_name xfs_name_dotdot; > extern const struct xfs_name xfs_name_dot; > > +static inline bool > +xfs_dir2_samename( > + const struct xfs_name *n1, > + const struct xfs_name *n2) > +{ > + return n1 == n2 || (n1->len == n2->len && > + !memcmp(n1->name, n2->name, n1->len)); Nit, but to me the formatting looks weird, why not: return n1 == n2 || (n1->len == n2->len && !memcmp(n1->name, n2->name, n1->len)); Or even more verbose: if (n1 == n2) return true; if (n1->len != n2->len) return false; return !memcmp(n1->name, n2->name, n1->len); Otherwise this looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>