From 038fecc045932171e882a4e3668208c28f66f795 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Sat, 16 Dec 2023 21:16:34 -0500 Subject: [PATCH] bcachefs: qstr_eq() Signed-off-by: Kent Overstreet --- fs/bcachefs/dirent.c | 4 ++-- fs/bcachefs/fsck.c | 2 -- fs/bcachefs/util.h | 7 +++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/fs/bcachefs/dirent.c b/fs/bcachefs/dirent.c index 580c1c95361e4..78ce9634d05c1 100644 --- a/fs/bcachefs/dirent.c +++ b/fs/bcachefs/dirent.c @@ -65,7 +65,7 @@ static bool dirent_cmp_key(struct bkey_s_c _l, const void *_r) const struct qstr l_name = bch2_dirent_get_name(l); const struct qstr *r_name = _r; - return l_name.len - r_name->len ?: memcmp(l_name.name, r_name->name, l_name.len); + return !qstr_eq(l_name, *r_name); } static bool dirent_cmp_bkey(struct bkey_s_c _l, struct bkey_s_c _r) @@ -75,7 +75,7 @@ static bool dirent_cmp_bkey(struct bkey_s_c _l, struct bkey_s_c _r) const struct qstr l_name = bch2_dirent_get_name(l); const struct qstr r_name = bch2_dirent_get_name(r); - return l_name.len - r_name.len ?: memcmp(l_name.name, r_name.name, l_name.len); + return !qstr_eq(l_name, r_name); } static bool dirent_is_visible(subvol_inum inum, struct bkey_s_c k) diff --git a/fs/bcachefs/fsck.c b/fs/bcachefs/fsck.c index 7023c2800d59d..43801e29bc5ab 100644 --- a/fs/bcachefs/fsck.c +++ b/fs/bcachefs/fsck.c @@ -20,8 +20,6 @@ #include #include /* struct qstr */ -#define QSTR(n) { { { .len = strlen(n) } }, .name = n } - /* * XXX: this is handling transaction restarts without returning * -BCH_ERR_transaction_restart_nested, this is not how we do things anymore: diff --git a/fs/bcachefs/util.h b/fs/bcachefs/util.h index 7eb567ab44579..1ff063bb87416 100644 --- a/fs/bcachefs/util.h +++ b/fs/bcachefs/util.h @@ -856,4 +856,11 @@ static inline int cmp_le32(__le32 l, __le32 r) #include +#define QSTR(n) { { { .len = strlen(n) } }, .name = n } + +static inline bool qstr_eq(const struct qstr l, const struct qstr r) +{ + return l.len == r.len && !memcmp(l.name, r.name, l.len); +} + #endif /* _BCACHEFS_UTIL_H */ -- 2.30.2