bch2_str_hash_opt_to_type(struct bch_fs *c, enum bch_str_hash_opts opt)
{
switch (opt) {
- case BCH_STR_HASH_OPT_CRC32C:
+ case BCH_STR_HASH_OPT_crc32c:
return BCH_STR_HASH_CRC32C;
- case BCH_STR_HASH_OPT_CRC64:
+ case BCH_STR_HASH_OPT_crc64:
return BCH_STR_HASH_CRC64;
- case BCH_STR_HASH_OPT_SIPHASH:
+ case BCH_STR_HASH_OPT_siphash:
return c->sb.features & (1ULL << BCH_FEATURE_new_siphash)
? BCH_STR_HASH_SIPHASH
: BCH_STR_HASH_SIPHASH_OLD;
if (k.k->type == desc.key_type) {
if (!desc.cmp_key(k, key))
return iter;
- } else if (k.k->type == KEY_TYPE_whiteout) {
+ } else if (k.k->type == KEY_TYPE_hash_whiteout) {
;
} else {
/* hole, not found */
break;
}
}
+ bch2_trans_iter_put(trans, iter);
return ERR_PTR(ret ?: -ENOENT);
}
return iter;
}
+ iter->flags |= BTREE_ITER_KEEP_UNTIL_COMMIT;
+ bch2_trans_iter_put(trans, iter);
+
return ERR_PTR(ret ?: -ENOSPC);
}
int ret;
iter = bch2_trans_copy_iter(trans, start);
- if (IS_ERR(iter))
- return PTR_ERR(iter);
bch2_btree_iter_next_slot(iter);
for_each_btree_key_continue(iter, BTREE_ITER_SLOTS, k, ret) {
if (k.k->type != desc.key_type &&
- k.k->type != KEY_TYPE_whiteout)
+ k.k->type != KEY_TYPE_hash_whiteout)
break;
if (k.k->type == desc.key_type &&
}
if (!slot &&
- !(flags & BCH_HASH_SET_MUST_REPLACE)) {
+ !(flags & BCH_HASH_SET_MUST_REPLACE))
slot = bch2_trans_copy_iter(trans, iter);
- if (IS_ERR(slot))
- return PTR_ERR(slot);
- }
- if (k.k->type != KEY_TYPE_whiteout)
+ if (k.k->type != KEY_TYPE_hash_whiteout)
goto not_found;
}
bkey_init(&delete->k);
delete->k.p = iter->pos;
- delete->k.type = ret ? KEY_TYPE_whiteout : KEY_TYPE_deleted;
+ delete->k.type = ret ? KEY_TYPE_hash_whiteout : KEY_TYPE_deleted;
bch2_trans_update(trans, iter, delete, 0);
return 0;