@@ -1309,7 +1309,7 @@ static bool btree_gc_mark_node(struct btree *b, struct gc_stat *gc)
13091309 uint8_t stale = 0 ;
13101310 unsigned int keys = 0 , good_keys = 0 ;
13111311 struct bkey * k ;
1312- struct btree_iter iter ;
1312+ struct btree_iter_stack iter ;
13131313 struct bset_tree * t ;
13141314
13151315 gc -> nodes ++ ;
@@ -1570,7 +1570,7 @@ static int btree_gc_rewrite_node(struct btree *b, struct btree_op *op,
15701570static unsigned int btree_gc_count_keys (struct btree * b )
15711571{
15721572 struct bkey * k ;
1573- struct btree_iter iter ;
1573+ struct btree_iter_stack iter ;
15741574 unsigned int ret = 0 ;
15751575
15761576 for_each_key_filter (& b -> keys , k , & iter , bch_ptr_bad )
@@ -1611,17 +1611,18 @@ static int btree_gc_recurse(struct btree *b, struct btree_op *op,
16111611 int ret = 0 ;
16121612 bool should_rewrite ;
16131613 struct bkey * k ;
1614- struct btree_iter iter ;
1614+ struct btree_iter_stack iter ;
16151615 struct gc_merge_info r [GC_MERGE_NODES ];
16161616 struct gc_merge_info * i , * last = r + ARRAY_SIZE (r ) - 1 ;
16171617
1618- bch_btree_iter_init (& b -> keys , & iter , & b -> c -> gc_done );
1618+ bch_btree_iter_stack_init (& b -> keys , & iter , & b -> c -> gc_done );
16191619
16201620 for (i = r ; i < r + ARRAY_SIZE (r ); i ++ )
16211621 i -> b = ERR_PTR (- EINTR );
16221622
16231623 while (1 ) {
1624- k = bch_btree_iter_next_filter (& iter , & b -> keys , bch_ptr_bad );
1624+ k = bch_btree_iter_next_filter (& iter .iter , & b -> keys ,
1625+ bch_ptr_bad );
16251626 if (k ) {
16261627 r -> b = bch_btree_node_get (b -> c , op , k , b -> level - 1 ,
16271628 true, b );
@@ -1911,18 +1912,18 @@ static int bch_btree_check_recurse(struct btree *b, struct btree_op *op)
19111912{
19121913 int ret = 0 ;
19131914 struct bkey * k , * p = NULL ;
1914- struct btree_iter iter ;
1915+ struct btree_iter_stack iter ;
19151916
19161917 for_each_key_filter (& b -> keys , k , & iter , bch_ptr_invalid )
19171918 bch_initial_mark_key (b -> c , b -> level , k );
19181919
19191920 bch_initial_mark_key (b -> c , b -> level + 1 , & b -> key );
19201921
19211922 if (b -> level ) {
1922- bch_btree_iter_init (& b -> keys , & iter , NULL );
1923+ bch_btree_iter_stack_init (& b -> keys , & iter , NULL );
19231924
19241925 do {
1925- k = bch_btree_iter_next_filter (& iter , & b -> keys ,
1926+ k = bch_btree_iter_next_filter (& iter . iter , & b -> keys ,
19261927 bch_ptr_bad );
19271928 if (k ) {
19281929 btree_node_prefetch (b , k );
@@ -1950,7 +1951,7 @@ static int bch_btree_check_thread(void *arg)
19501951 struct btree_check_info * info = arg ;
19511952 struct btree_check_state * check_state = info -> state ;
19521953 struct cache_set * c = check_state -> c ;
1953- struct btree_iter iter ;
1954+ struct btree_iter_stack iter ;
19541955 struct bkey * k , * p ;
19551956 int cur_idx , prev_idx , skip_nr ;
19561957
@@ -1959,8 +1960,8 @@ static int bch_btree_check_thread(void *arg)
19591960 ret = 0 ;
19601961
19611962 /* root node keys are checked before thread created */
1962- bch_btree_iter_init (& c -> root -> keys , & iter , NULL );
1963- k = bch_btree_iter_next_filter (& iter , & c -> root -> keys , bch_ptr_bad );
1963+ bch_btree_iter_stack_init (& c -> root -> keys , & iter , NULL );
1964+ k = bch_btree_iter_next_filter (& iter . iter , & c -> root -> keys , bch_ptr_bad );
19641965 BUG_ON (!k );
19651966
19661967 p = k ;
@@ -1978,7 +1979,7 @@ static int bch_btree_check_thread(void *arg)
19781979 skip_nr = cur_idx - prev_idx ;
19791980
19801981 while (skip_nr ) {
1981- k = bch_btree_iter_next_filter (& iter ,
1982+ k = bch_btree_iter_next_filter (& iter . iter ,
19821983 & c -> root -> keys ,
19831984 bch_ptr_bad );
19841985 if (k )
@@ -2051,7 +2052,7 @@ int bch_btree_check(struct cache_set *c)
20512052 int ret = 0 ;
20522053 int i ;
20532054 struct bkey * k = NULL ;
2054- struct btree_iter iter ;
2055+ struct btree_iter_stack iter ;
20552056 struct btree_check_state check_state ;
20562057
20572058 /* check and mark root node keys */
@@ -2547,11 +2548,11 @@ static int bch_btree_map_nodes_recurse(struct btree *b, struct btree_op *op,
25472548
25482549 if (b -> level ) {
25492550 struct bkey * k ;
2550- struct btree_iter iter ;
2551+ struct btree_iter_stack iter ;
25512552
2552- bch_btree_iter_init (& b -> keys , & iter , from );
2553+ bch_btree_iter_stack_init (& b -> keys , & iter , from );
25532554
2554- while ((k = bch_btree_iter_next_filter (& iter , & b -> keys ,
2555+ while ((k = bch_btree_iter_next_filter (& iter . iter , & b -> keys ,
25552556 bch_ptr_bad ))) {
25562557 ret = bcache_btree (map_nodes_recurse , k , b ,
25572558 op , from , fn , flags );
@@ -2580,11 +2581,12 @@ int bch_btree_map_keys_recurse(struct btree *b, struct btree_op *op,
25802581{
25812582 int ret = MAP_CONTINUE ;
25822583 struct bkey * k ;
2583- struct btree_iter iter ;
2584+ struct btree_iter_stack iter ;
25842585
2585- bch_btree_iter_init (& b -> keys , & iter , from );
2586+ bch_btree_iter_stack_init (& b -> keys , & iter , from );
25862587
2587- while ((k = bch_btree_iter_next_filter (& iter , & b -> keys , bch_ptr_bad ))) {
2588+ while ((k = bch_btree_iter_next_filter (& iter .iter , & b -> keys ,
2589+ bch_ptr_bad ))) {
25882590 ret = !b -> level
25892591 ? fn (op , b , k )
25902592 : bcache_btree (map_keys_recurse , k ,
0 commit comments