diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2017-04-14 20:38:49 -0800 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-04-14 20:40:31 -0800 |
commit | 819f2dde79241915a6edda2c20bb4ca5d4017030 (patch) | |
tree | b165cdf270fd14e98ecfa4affe57943c6854529e /libbcachefs/btree_iter.c | |
parent | 03bc9d71b13e6f8e879894f93ea16f1f4a8280c9 (diff) |
Update bcachefs sources to f026e4e024
Diffstat (limited to 'libbcachefs/btree_iter.c')
-rw-r--r-- | libbcachefs/btree_iter.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/libbcachefs/btree_iter.c b/libbcachefs/btree_iter.c index 55303f09..0b28082e 100644 --- a/libbcachefs/btree_iter.c +++ b/libbcachefs/btree_iter.c @@ -1109,6 +1109,26 @@ void __bch2_btree_iter_init(struct btree_iter *iter, struct bch_fs *c, prefetch(c->btree_roots[btree_id].b); } +void bch2_btree_iter_unlink(struct btree_iter *iter) +{ + struct btree_iter *linked; + + __bch2_btree_iter_unlock(iter); + + if (!btree_iter_linked(iter)) + return; + + for_each_linked_btree_iter(iter, linked) { + + if (linked->next == iter) { + linked->next = iter->next; + return; + } + } + + BUG(); +} + void bch2_btree_iter_link(struct btree_iter *iter, struct btree_iter *new) { BUG_ON(btree_iter_linked(new)); @@ -1128,7 +1148,7 @@ void bch2_btree_iter_link(struct btree_iter *iter, struct btree_iter *new) void bch2_btree_iter_copy(struct btree_iter *dst, struct btree_iter *src) { - bch2_btree_iter_unlock(dst); + __bch2_btree_iter_unlock(dst); memcpy(dst, src, offsetof(struct btree_iter, next)); dst->nodes_locked = dst->nodes_intent_locked = 0; } |