Commit 038fecc0 authored by Kent Overstreet's avatar Kent Overstreet

bcachefs: qstr_eq()

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent cf904c8d
...@@ -65,7 +65,7 @@ static bool dirent_cmp_key(struct bkey_s_c _l, const void *_r) ...@@ -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 l_name = bch2_dirent_get_name(l);
const struct qstr *r_name = _r; 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) 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) ...@@ -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 l_name = bch2_dirent_get_name(l);
const struct qstr r_name = bch2_dirent_get_name(r); 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) static bool dirent_is_visible(subvol_inum inum, struct bkey_s_c k)
......
...@@ -20,8 +20,6 @@ ...@@ -20,8 +20,6 @@
#include <linux/bsearch.h> #include <linux/bsearch.h>
#include <linux/dcache.h> /* struct qstr */ #include <linux/dcache.h> /* struct qstr */
#define QSTR(n) { { { .len = strlen(n) } }, .name = n }
/* /*
* XXX: this is handling transaction restarts without returning * XXX: this is handling transaction restarts without returning
* -BCH_ERR_transaction_restart_nested, this is not how we do things anymore: * -BCH_ERR_transaction_restart_nested, this is not how we do things anymore:
......
...@@ -856,4 +856,11 @@ static inline int cmp_le32(__le32 l, __le32 r) ...@@ -856,4 +856,11 @@ static inline int cmp_le32(__le32 l, __le32 r)
#include <linux/uuid.h> #include <linux/uuid.h>
#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 */ #endif /* _BCACHEFS_UTIL_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment