summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2016-05-30 14:48:17 -0800
committerKent Overstreet <kent.overstreet@gmail.com>2016-10-07 12:36:32 -0800
commitbb5c7eb94ef9632d8fe230e68057317c537014d5 (patch)
tree8afa51eed3d0dfcf1749d08ac09c95f500253e47
parent8f58240bfe1c4d29449504bbbd06efa31a7cc259 (diff)
bcache: kill bch_btree_node_iter_next()
-rw-r--r--drivers/md/bcache/bset.c6
-rw-r--r--drivers/md/bcache/bset.h20
-rw-r--r--drivers/md/bcache/btree_update.c14
3 files changed, 17 insertions, 23 deletions
diff --git a/drivers/md/bcache/bset.c b/drivers/md/bcache/bset.c
index 608644b9593f..d09155a4ccd2 100644
--- a/drivers/md/bcache/bset.c
+++ b/drivers/md/bcache/bset.c
@@ -1506,15 +1506,15 @@ found:
return bch_btree_node_iter_peek_all(iter, b);
}
-struct bkey_s_c bch_btree_node_iter_next_unpack(struct btree_node_iter *iter,
+struct bkey_s_c bch_btree_node_iter_peek_unpack(struct btree_node_iter *iter,
struct btree_keys *b,
struct bkey *u)
{
- struct bkey_packed *k = bch_btree_node_iter_next(iter, b);
+ struct bkey_packed *k = bch_btree_node_iter_peek(iter, b);
return k ? bkey_disassemble(&b->format, k, u) : bkey_s_c_null;
}
-EXPORT_SYMBOL(bch_btree_node_iter_next_unpack);
+EXPORT_SYMBOL(bch_btree_node_iter_peek_unpack);
/* Mergesort */
diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h
index ac1ba48e46df..5785270f4674 100644
--- a/drivers/md/bcache/bset.h
+++ b/drivers/md/bcache/bset.h
@@ -510,18 +510,6 @@ bch_btree_node_iter_next_all(struct btree_node_iter *iter, struct btree_keys *b)
}
static inline struct bkey_packed *
-bch_btree_node_iter_next(struct btree_node_iter *iter, struct btree_keys *b)
-{
- struct bkey_packed *ret;
-
- do {
- ret = bch_btree_node_iter_next_all(iter, b);
- } while (ret && bkey_deleted(ret));
-
- return ret;
-}
-
-static inline struct bkey_packed *
bch_btree_node_iter_peek_overlapping(struct btree_node_iter *iter,
struct btree_keys *b,
struct bkey *end)
@@ -551,15 +539,17 @@ struct bkey_packed *bch_btree_node_iter_prev_all(struct btree_node_iter *,
*/
#define for_each_btree_node_key(b, k, iter) \
for (bch_btree_node_iter_init_from_start((iter), (b)); \
- ((k) = bch_btree_node_iter_next(iter, b));)
+ ((k) = bch_btree_node_iter_peek(iter, b)); \
+ bch_btree_node_iter_advance(iter, b))
-struct bkey_s_c bch_btree_node_iter_next_unpack(struct btree_node_iter *,
+struct bkey_s_c bch_btree_node_iter_peek_unpack(struct btree_node_iter *,
struct btree_keys *,
struct bkey *);
#define for_each_btree_node_key_unpack(b, k, iter, unpacked) \
for (bch_btree_node_iter_init_from_start((iter), (b)); \
- (k = bch_btree_node_iter_next_unpack((iter), (b), (unpacked))).k;)
+ (k = bch_btree_node_iter_peek_unpack((iter), (b), (unpacked))).k;\
+ bch_btree_node_iter_advance(iter, b))
/* Sorting */
diff --git a/drivers/md/bcache/btree_update.c b/drivers/md/bcache/btree_update.c
index 3d12a642f1be..1d3dcf194d70 100644
--- a/drivers/md/bcache/btree_update.c
+++ b/drivers/md/bcache/btree_update.c
@@ -1068,14 +1068,16 @@ static void btree_node_interior_verify(struct btree *b)
bch_btree_node_iter_init(&iter, &b->keys, b->key.k.p, false);
#if 1
- BUG_ON(!(k = bch_btree_node_iter_next(&iter, &b->keys)) ||
- bkey_cmp_left_packed(f, k, b->key.k.p) ||
- bch_btree_node_iter_peek(&iter, &b->keys));
+ BUG_ON(!(k = bch_btree_node_iter_peek(&iter, &b->keys)) ||
+ bkey_cmp_left_packed(f, k, b->key.k.p));
+
+ BUG_ON((bch_btree_node_iter_advance(&iter, &b->keys),
+ !bch_btree_node_iter_end(&iter)));
#else
const char *msg;
msg = "not found";
- k = bch_btree_node_iter_next(&iter, &b->keys);
+ k = bch_btree_node_iter_peek(&iter, &b->keys);
if (!k)
goto err;
@@ -1083,8 +1085,10 @@ static void btree_node_interior_verify(struct btree *b)
if (bkey_cmp_left_packed(f, k, b->key.k.p))
goto err;
+ bch_btree_node_iter_advance(&iter, &b->keys);
+
msg = "isn't last key";
- if (bch_btree_node_iter_peek(&iter, &b->keys))
+ if (!bch_btree_node_iter_end(&iter))
goto err;
return;
err: