diff options
-rw-r--r-- | fs/bcachefs/backpointers.c | 5 | ||||
-rw-r--r-- | fs/bcachefs/backpointers.h | 2 | ||||
-rw-r--r-- | fs/bcachefs/ec.c | 4 | ||||
-rw-r--r-- | fs/bcachefs/move.c | 3 |
4 files changed, 9 insertions, 5 deletions
diff --git a/fs/bcachefs/backpointers.c b/fs/bcachefs/backpointers.c index b0e30594c487..a537768c4600 100644 --- a/fs/bcachefs/backpointers.c +++ b/fs/bcachefs/backpointers.c @@ -414,7 +414,8 @@ err: int bch2_get_next_backpointer(struct btree_trans *trans, struct bpos bucket, int gen, u64 *bp_offset, - struct bch_backpointer *dst) + struct bch_backpointer *dst, + unsigned iter_flags) { struct bch_fs *c = trans->c; struct bpos bp_pos, bp_end_pos; @@ -1023,7 +1024,7 @@ static int check_one_backpointer(struct btree_trans *trans, struct printbuf buf = PRINTBUF; int ret; - ret = bch2_get_next_backpointer(trans, bucket, -1, bp_offset, &bp); + ret = bch2_get_next_backpointer(trans, bucket, -1, bp_offset, &bp, 0); if (ret || *bp_offset == U64_MAX) return ret; diff --git a/fs/bcachefs/backpointers.h b/fs/bcachefs/backpointers.h index fe42af296e9c..1c97e364c532 100644 --- a/fs/bcachefs/backpointers.h +++ b/fs/bcachefs/backpointers.h @@ -25,7 +25,7 @@ int bch2_bucket_backpointer_del(struct btree_trans *, struct bkey_i_alloc_v4 *, int bch2_bucket_backpointer_add(struct btree_trans *, struct bkey_i_alloc_v4 *, struct bch_backpointer, struct bkey_s_c); int bch2_get_next_backpointer(struct btree_trans *, struct bpos, int, - u64 *, struct bch_backpointer *); + u64 *, struct bch_backpointer *, unsigned); struct bkey_s_c bch2_backpointer_get_key(struct btree_trans *, struct btree_iter *, struct bpos, u64, struct bch_backpointer); struct btree *bch2_backpointer_get_node(struct btree_trans *, struct btree_iter *, diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c index d3fa2d7ae1a2..dfe37965d516 100644 --- a/fs/bcachefs/ec.c +++ b/fs/bcachefs/ec.c @@ -872,7 +872,9 @@ retry: while (1) { bch2_trans_begin(trans); - ret = bch2_get_next_backpointer(trans, bucket_pos, bucket.gen, &bp_offset, &bp); + ret = bch2_get_next_backpointer(trans, bucket_pos, bucket.gen, + &bp_offset, &bp, + BTREE_ITER_CACHED); if (ret) break; if (bp_offset == U64_MAX) diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index 0f6ff51471dc..0e30f2e6ff48 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -627,7 +627,8 @@ int __bch2_evacuate_bucket(struct moving_context *ctxt, bch2_trans_begin(&trans); ret = bch2_get_next_backpointer(&trans, bucket, gen, - &bp_offset, &bp); + &bp_offset, &bp, + BTREE_ITER_CACHED); if (bch2_err_matches(ret, BCH_ERR_transaction_restart)) continue; if (ret) |