|
@@ -1866,7 +1866,7 @@ static bool bch_btree_insert_keys(struct btree *b, struct btree_op *op,
|
|
|
|
|
|
while (!bch_keylist_empty(insert_keys)) {
|
|
while (!bch_keylist_empty(insert_keys)) {
|
|
struct bset *i = write_block(b);
|
|
struct bset *i = write_block(b);
|
|
- struct bkey *k = insert_keys->bottom;
|
|
|
|
|
|
+ struct bkey *k = insert_keys->keys;
|
|
|
|
|
|
if (b->written + __set_blocks(i, i->keys + bkey_u64s(k), b->c)
|
|
if (b->written + __set_blocks(i, i->keys + bkey_u64s(k), b->c)
|
|
> btree_blocks(b))
|
|
> btree_blocks(b))
|
|
@@ -1887,10 +1887,10 @@ static bool bch_btree_insert_keys(struct btree *b, struct btree_op *op,
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
BKEY_PADDED(key) temp;
|
|
BKEY_PADDED(key) temp;
|
|
- bkey_copy(&temp.key, insert_keys->bottom);
|
|
|
|
|
|
+ bkey_copy(&temp.key, insert_keys->keys);
|
|
|
|
|
|
bch_cut_back(&b->key, &temp.key);
|
|
bch_cut_back(&b->key, &temp.key);
|
|
- bch_cut_front(&b->key, insert_keys->bottom);
|
|
|
|
|
|
+ bch_cut_front(&b->key, insert_keys->keys);
|
|
|
|
|
|
ret |= btree_insert_key(b, op, &temp.key);
|
|
ret |= btree_insert_key(b, op, &temp.key);
|
|
break;
|
|
break;
|
|
@@ -1984,7 +1984,7 @@ static int btree_split(struct btree *b, struct btree_op *op,
|
|
} else if (!b->parent) {
|
|
} else if (!b->parent) {
|
|
/* Root filled up but didn't need to be split */
|
|
/* Root filled up but didn't need to be split */
|
|
|
|
|
|
- parent_keys->top = parent_keys->bottom;
|
|
|
|
|
|
+ bch_keylist_reset(parent_keys);
|
|
closure_sync(&op->cl);
|
|
closure_sync(&op->cl);
|
|
bch_btree_set_root(n1);
|
|
bch_btree_set_root(n1);
|
|
} else {
|
|
} else {
|
|
@@ -2118,12 +2118,12 @@ static int bch_btree_insert_recurse(struct btree *b, struct btree_op *op,
|
|
if (b->level) {
|
|
if (b->level) {
|
|
struct bkey *k;
|
|
struct bkey *k;
|
|
|
|
|
|
- k = bch_next_recurse_key(b, &START_KEY(keys->bottom));
|
|
|
|
|
|
+ k = bch_next_recurse_key(b, &START_KEY(keys->keys));
|
|
if (!k) {
|
|
if (!k) {
|
|
btree_bug(b, "no key to recurse on at level %i/%i",
|
|
btree_bug(b, "no key to recurse on at level %i/%i",
|
|
b->level, b->c->root->level);
|
|
b->level, b->c->root->level);
|
|
|
|
|
|
- keys->top = keys->bottom;
|
|
|
|
|
|
+ bch_keylist_reset(keys);
|
|
return -EIO;
|
|
return -EIO;
|
|
}
|
|
}
|
|
|
|
|