summaryrefslogtreecommitdiff
path: root/fs/bcachefs/str_hash.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-11-01 15:10:01 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2018-12-27 11:38:34 -0500
commit925050bb88c11a66d367fc27bd326a4a68826d9d (patch)
tree393ced56eebb7f69f57ab4f0394195d65d111286 /fs/bcachefs/str_hash.h
parent86358bbbd4a5e4cc0e7fb9dba30114027a778864 (diff)
bcachefs: Make bkey types globally unique
this lets us get rid of a lot of extra switch statements - in a lot of places we dispatch on the btree node type, and then the key type, so this is a nice cleanup across a lot of code. Also improve the on disk format versioning stuff.
Diffstat (limited to 'fs/bcachefs/str_hash.h')
-rw-r--r--fs/bcachefs/str_hash.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/bcachefs/str_hash.h b/fs/bcachefs/str_hash.h
index 7eff5a42d91e..032b34a1ac44 100644
--- a/fs/bcachefs/str_hash.h
+++ b/fs/bcachefs/str_hash.h
@@ -117,7 +117,6 @@ static inline u64 bch2_str_hash_end(struct bch_str_hash_ctx *ctx,
struct bch_hash_desc {
enum btree_id btree_id;
u8 key_type;
- u8 whiteout_type;
u64 (*hash_key)(const struct bch_hash_info *, const void *);
u64 (*hash_bkey)(const struct bch_hash_info *, struct bkey_s_c);
@@ -148,7 +147,7 @@ bch2_hash_lookup(struct btree_trans *trans,
if (k.k->type == desc.key_type) {
if (!desc.cmp_key(k, key))
return iter;
- } else if (k.k->type == desc.whiteout_type) {
+ } else if (k.k->type == KEY_TYPE_whiteout) {
;
} else {
/* hole, not found */
@@ -201,7 +200,7 @@ static inline int bch2_hash_needs_whiteout(struct btree_trans *trans,
for_each_btree_key_continue(iter, BTREE_ITER_SLOTS, k) {
if (k.k->type != desc.key_type &&
- k.k->type != desc.whiteout_type)
+ k.k->type != KEY_TYPE_whiteout)
return false;
if (k.k->type == desc.key_type &&
@@ -244,7 +243,7 @@ static inline int __bch2_hash_set(struct btree_trans *trans,
return PTR_ERR(slot);
}
- if (k.k->type != desc.whiteout_type)
+ if (k.k->type != KEY_TYPE_whiteout)
goto not_found;
}
@@ -294,7 +293,7 @@ static inline int bch2_hash_delete_at(struct btree_trans *trans,
bkey_init(&delete->k);
delete->k.p = iter->pos;
- delete->k.type = ret ? desc.whiteout_type : KEY_TYPE_DELETED;
+ delete->k.type = ret ? KEY_TYPE_whiteout : KEY_TYPE_deleted;
bch2_trans_update(trans, BTREE_INSERT_ENTRY(iter, delete));
return 0;