@@ -610,7 +610,7 @@ int bch2_alloc_read(struct bch_fs *c)
610610 * bch2_check_alloc_key() which runs later:
611611 */
612612 if (!ca ) {
613- bch2_btree_iter_set_pos (& iter , POS (k .k -> p .inode + 1 , 0 ));
613+ bch2_btree_iter_set_pos (trans , & iter , POS (k .k -> p .inode + 1 , 0 ));
614614 continue ;
615615 }
616616
@@ -631,17 +631,17 @@ int bch2_alloc_read(struct bch_fs *c)
631631 * bch2_check_alloc_key() which runs later:
632632 */
633633 if (!ca ) {
634- bch2_btree_iter_set_pos (& iter , POS (k .k -> p .inode + 1 , 0 ));
634+ bch2_btree_iter_set_pos (trans , & iter , POS (k .k -> p .inode + 1 , 0 ));
635635 continue ;
636636 }
637637
638638 if (k .k -> p .offset < ca -> mi .first_bucket ) {
639- bch2_btree_iter_set_pos (& iter , POS (k .k -> p .inode , ca -> mi .first_bucket ));
639+ bch2_btree_iter_set_pos (trans , & iter , POS (k .k -> p .inode , ca -> mi .first_bucket ));
640640 continue ;
641641 }
642642
643643 if (k .k -> p .offset >= ca -> mi .nbuckets ) {
644- bch2_btree_iter_set_pos (& iter , POS (k .k -> p .inode + 1 , 0 ));
644+ bch2_btree_iter_set_pos (trans , & iter , POS (k .k -> p .inode + 1 , 0 ));
645645 continue ;
646646 }
647647
@@ -1039,9 +1039,10 @@ int bch2_trigger_alloc(struct btree_trans *trans,
10391039 * This synthesizes deleted extents for holes, similar to BTREE_ITER_slots for
10401040 * extents style btrees, but works on non-extents btrees:
10411041 */
1042- static struct bkey_s_c bch2_get_key_or_hole (struct btree_iter * iter , struct bpos end , struct bkey * hole )
1042+ static struct bkey_s_c bch2_get_key_or_hole (struct btree_trans * trans , struct btree_iter * iter ,
1043+ struct bpos end , struct bkey * hole )
10431044{
1044- struct bkey_s_c k = bch2_btree_iter_peek_slot (iter );
1045+ struct bkey_s_c k = bch2_btree_iter_peek_slot (trans , iter );
10451046
10461047 if (bkey_err (k ))
10471048 return k ;
@@ -1052,9 +1053,9 @@ static struct bkey_s_c bch2_get_key_or_hole(struct btree_iter *iter, struct bpos
10521053 struct btree_iter iter2 ;
10531054 struct bpos next ;
10541055
1055- bch2_trans_copy_iter (& iter2 , iter );
1056+ bch2_trans_copy_iter (trans , & iter2 , iter );
10561057
1057- struct btree_path * path = btree_iter_path (iter -> trans , iter );
1058+ struct btree_path * path = btree_iter_path (trans , iter );
10581059 if (!bpos_eq (path -> l [0 ].b -> key .k .p , SPOS_MAX ))
10591060 end = bkey_min (end , bpos_nosnap_successor (path -> l [0 ].b -> key .k .p ));
10601061
@@ -1064,9 +1065,9 @@ static struct bkey_s_c bch2_get_key_or_hole(struct btree_iter *iter, struct bpos
10641065 * btree node min/max is a closed interval, upto takes a half
10651066 * open interval:
10661067 */
1067- k = bch2_btree_iter_peek_max (& iter2 , end );
1068+ k = bch2_btree_iter_peek_max (trans , & iter2 , end );
10681069 next = iter2 .pos ;
1069- bch2_trans_iter_exit (iter -> trans , & iter2 );
1070+ bch2_trans_iter_exit (trans , & iter2 );
10701071
10711072 BUG_ON (next .offset >= iter -> pos .offset + U32_MAX );
10721073
@@ -1107,13 +1108,14 @@ static bool next_bucket(struct bch_fs *c, struct bch_dev **ca, struct bpos *buck
11071108 return * ca != NULL ;
11081109}
11091110
1110- static struct bkey_s_c bch2_get_key_or_real_bucket_hole (struct btree_iter * iter ,
1111- struct bch_dev * * ca , struct bkey * hole )
1111+ static struct bkey_s_c bch2_get_key_or_real_bucket_hole (struct btree_trans * trans ,
1112+ struct btree_iter * iter ,
1113+ struct bch_dev * * ca , struct bkey * hole )
11121114{
1113- struct bch_fs * c = iter -> trans -> c ;
1115+ struct bch_fs * c = trans -> c ;
11141116 struct bkey_s_c k ;
11151117again :
1116- k = bch2_get_key_or_hole (iter , POS_MAX , hole );
1118+ k = bch2_get_key_or_hole (trans , iter , POS_MAX , hole );
11171119 if (bkey_err (k ))
11181120 return k ;
11191121
@@ -1126,7 +1128,7 @@ static struct bkey_s_c bch2_get_key_or_real_bucket_hole(struct btree_iter *iter,
11261128 if (!next_bucket (c , ca , & hole_start ))
11271129 return bkey_s_c_null ;
11281130
1129- bch2_btree_iter_set_pos (iter , hole_start );
1131+ bch2_btree_iter_set_pos (trans , iter , hole_start );
11301132 goto again ;
11311133 }
11321134
@@ -1167,8 +1169,8 @@ int bch2_check_alloc_key(struct btree_trans *trans,
11671169
11681170 a = bch2_alloc_to_v4 (alloc_k , & a_convert );
11691171
1170- bch2_btree_iter_set_pos (discard_iter , alloc_k .k -> p );
1171- k = bch2_btree_iter_peek_slot (discard_iter );
1172+ bch2_btree_iter_set_pos (trans , discard_iter , alloc_k .k -> p );
1173+ k = bch2_btree_iter_peek_slot (trans , discard_iter );
11721174 ret = bkey_err (k );
11731175 if (ret )
11741176 goto err ;
@@ -1181,8 +1183,8 @@ int bch2_check_alloc_key(struct btree_trans *trans,
11811183 goto err ;
11821184 }
11831185
1184- bch2_btree_iter_set_pos (freespace_iter , alloc_freespace_pos (alloc_k .k -> p , * a ));
1185- k = bch2_btree_iter_peek_slot (freespace_iter );
1186+ bch2_btree_iter_set_pos (trans , freespace_iter , alloc_freespace_pos (alloc_k .k -> p , * a ));
1187+ k = bch2_btree_iter_peek_slot (trans , freespace_iter );
11861188 ret = bkey_err (k );
11871189 if (ret )
11881190 goto err ;
@@ -1195,8 +1197,8 @@ int bch2_check_alloc_key(struct btree_trans *trans,
11951197 goto err ;
11961198 }
11971199
1198- bch2_btree_iter_set_pos (bucket_gens_iter , alloc_gens_pos (alloc_k .k -> p , & gens_offset ));
1199- k = bch2_btree_iter_peek_slot (bucket_gens_iter );
1200+ bch2_btree_iter_set_pos (trans , bucket_gens_iter , alloc_gens_pos (alloc_k .k -> p , & gens_offset ));
1201+ k = bch2_btree_iter_peek_slot (trans , bucket_gens_iter );
12001202 ret = bkey_err (k );
12011203 if (ret )
12021204 goto err ;
@@ -1249,9 +1251,9 @@ int bch2_check_alloc_hole_freespace(struct btree_trans *trans,
12491251 if (!ca -> mi .freespace_initialized )
12501252 return 0 ;
12511253
1252- bch2_btree_iter_set_pos (freespace_iter , start );
1254+ bch2_btree_iter_set_pos (trans , freespace_iter , start );
12531255
1254- k = bch2_btree_iter_peek_slot (freespace_iter );
1256+ k = bch2_btree_iter_peek_slot (trans , freespace_iter );
12551257 ret = bkey_err (k );
12561258 if (ret )
12571259 goto err ;
@@ -1300,9 +1302,9 @@ int bch2_check_alloc_hole_bucket_gens(struct btree_trans *trans,
13001302 unsigned i , gens_offset , gens_end_offset ;
13011303 int ret ;
13021304
1303- bch2_btree_iter_set_pos (bucket_gens_iter , alloc_gens_pos (start , & gens_offset ));
1305+ bch2_btree_iter_set_pos (trans , bucket_gens_iter , alloc_gens_pos (start , & gens_offset ));
13041306
1305- k = bch2_btree_iter_peek_slot (bucket_gens_iter );
1307+ k = bch2_btree_iter_peek_slot (trans , bucket_gens_iter );
13061308 ret = bkey_err (k );
13071309 if (ret )
13081310 goto err ;
@@ -1435,7 +1437,7 @@ int bch2_check_discard_freespace_key(struct btree_trans *trans, struct btree_ite
14351437 * gen = a -> gen ;
14361438out :
14371439fsck_err :
1438- bch2_set_btree_iter_dontneed (& alloc_iter );
1440+ bch2_set_btree_iter_dontneed (trans , & alloc_iter );
14391441 bch2_trans_iter_exit (trans , & alloc_iter );
14401442 printbuf_exit (& buf );
14411443 return ret ;
@@ -1572,7 +1574,7 @@ int bch2_check_alloc_info(struct bch_fs *c)
15721574
15731575 bch2_trans_begin (trans );
15741576
1575- k = bch2_get_key_or_real_bucket_hole (& iter , & ca , & hole );
1577+ k = bch2_get_key_or_real_bucket_hole (trans , & iter , & ca , & hole );
15761578 ret = bkey_err (k );
15771579 if (ret )
15781580 goto bkey_err ;
@@ -1610,7 +1612,7 @@ int bch2_check_alloc_info(struct bch_fs *c)
16101612 if (ret )
16111613 goto bkey_err ;
16121614
1613- bch2_btree_iter_set_pos (& iter , next );
1615+ bch2_btree_iter_set_pos (trans , & iter , next );
16141616bkey_err :
16151617 if (bch2_err_matches (ret , BCH_ERR_transaction_restart ))
16161618 continue ;
@@ -1638,7 +1640,7 @@ int bch2_check_alloc_info(struct bch_fs *c)
16381640 BTREE_ITER_prefetch );
16391641 while (1 ) {
16401642 bch2_trans_begin (trans );
1641- k = bch2_btree_iter_peek (& iter );
1643+ k = bch2_btree_iter_peek (trans , & iter );
16421644 if (!k .k )
16431645 break ;
16441646
@@ -1657,7 +1659,7 @@ int bch2_check_alloc_info(struct bch_fs *c)
16571659 break ;
16581660 }
16591661
1660- bch2_btree_iter_set_pos (& iter , bpos_nosnap_successor (iter .pos ));
1662+ bch2_btree_iter_set_pos (trans , & iter , bpos_nosnap_successor (iter .pos ));
16611663 }
16621664 bch2_trans_iter_exit (trans , & iter );
16631665 if (ret )
@@ -1685,7 +1687,7 @@ static int bch2_check_alloc_to_lru_ref(struct btree_trans *trans,
16851687 struct printbuf buf = PRINTBUF ;
16861688 int ret ;
16871689
1688- alloc_k = bch2_btree_iter_peek (alloc_iter );
1690+ alloc_k = bch2_btree_iter_peek (trans , alloc_iter );
16891691 if (!alloc_k .k )
16901692 return 0 ;
16911693
@@ -1826,7 +1828,7 @@ static int bch2_discard_one_bucket(struct btree_trans *trans,
18261828{
18271829 struct bch_fs * c = trans -> c ;
18281830 struct bpos pos = need_discard_iter -> pos ;
1829- struct btree_iter iter = { NULL };
1831+ struct btree_iter iter = {};
18301832 struct bkey_s_c k ;
18311833 struct bkey_i_alloc_v4 * a ;
18321834 struct printbuf buf = PRINTBUF ;
@@ -2199,9 +2201,9 @@ static struct bkey_s_c next_lru_key(struct btree_trans *trans, struct btree_iter
21992201{
22002202 struct bkey_s_c k ;
22012203again :
2202- k = bch2_btree_iter_peek_max (iter , lru_pos (ca -> dev_idx , U64_MAX , LRU_TIME_MAX ));
2204+ k = bch2_btree_iter_peek_max (trans , iter , lru_pos (ca -> dev_idx , U64_MAX , LRU_TIME_MAX ));
22032205 if (!k .k && !* wrapped ) {
2204- bch2_btree_iter_set_pos (iter , lru_pos (ca -> dev_idx , 0 , 0 ));
2206+ bch2_btree_iter_set_pos (trans , iter , lru_pos (ca -> dev_idx , 0 , 0 ));
22052207 * wrapped = true;
22062208 goto again ;
22072209 }
@@ -2251,7 +2253,7 @@ static void bch2_do_invalidates_work(struct work_struct *work)
22512253 if (ret )
22522254 break ;
22532255
2254- bch2_btree_iter_advance (& iter );
2256+ bch2_btree_iter_advance (trans , & iter );
22552257 }
22562258 bch2_trans_iter_exit (trans , & iter );
22572259err :
@@ -2321,7 +2323,7 @@ int bch2_dev_freespace_init(struct bch_fs *c, struct bch_dev *ca,
23212323 break ;
23222324 }
23232325
2324- k = bch2_get_key_or_hole (& iter , end , & hole );
2326+ k = bch2_get_key_or_hole (trans , & iter , end , & hole );
23252327 ret = bkey_err (k );
23262328 if (ret )
23272329 goto bkey_err ;
@@ -2340,7 +2342,7 @@ int bch2_dev_freespace_init(struct bch_fs *c, struct bch_dev *ca,
23402342 if (ret )
23412343 goto bkey_err ;
23422344
2343- bch2_btree_iter_advance (& iter );
2345+ bch2_btree_iter_advance (trans , & iter );
23442346 } else {
23452347 struct bkey_i * freespace ;
23462348
@@ -2360,7 +2362,7 @@ int bch2_dev_freespace_init(struct bch_fs *c, struct bch_dev *ca,
23602362 if (ret )
23612363 goto bkey_err ;
23622364
2363- bch2_btree_iter_set_pos (& iter , k .k -> p );
2365+ bch2_btree_iter_set_pos (trans , & iter , k .k -> p );
23642366 }
23652367bkey_err :
23662368 if (bch2_err_matches (ret , BCH_ERR_transaction_restart ))
0 commit comments