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 4845aefb2f73..7d4367f93b5c 100644 --- a/fs/bcachefs/backpointers.c +++ b/fs/bcachefs/backpointers.c @@ -385,7 +385,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; @@ -1001,7 +1002,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 1747ec3d4046..48a48b75c0ac 100644 --- a/fs/bcachefs/backpointers.h +++ b/fs/bcachefs/backpointers.h @@ -45,7 +45,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 808e61523d9a..9da79651e967 100644 --- a/fs/bcachefs/ec.c +++ b/fs/bcachefs/ec.c @@ -870,7 +870,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 f30f3661120a..632b8b440f71 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -673,7 +673,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) |