diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-22 13:25:25 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-10-22 14:41:54 -0400 |
commit | 188b6d0c8ef1c02462a744b176557c27220112c9 (patch) | |
tree | ab1f239b3bad0335e1d3fa62415bc8d845ba68be /libbcachefs/backpointers.c | |
parent | 494421ee6e85514f90bb316d77e1dd4f7dad3420 (diff) |
Update bcachefs sources to cd779e0cc5 bcachefs: Skip inode unpack/pack in bch2_extent_update()v0.23
Diffstat (limited to 'libbcachefs/backpointers.c')
-rw-r--r-- | libbcachefs/backpointers.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libbcachefs/backpointers.c b/libbcachefs/backpointers.c index a537768c..d74de1df 100644 --- a/libbcachefs/backpointers.c +++ b/libbcachefs/backpointers.c @@ -535,7 +535,7 @@ struct bkey_s_c bch2_backpointer_get_key(struct btree_trans *trans, if (bp.level == c->btree_roots[bp.btree_id].level + 1) k = bkey_i_to_s_c(&c->btree_roots[bp.btree_id].key); - if (extent_matches_bp(c, bp.btree_id, bp.level, k, bucket, bp)) + if (k.k && extent_matches_bp(c, bp.btree_id, bp.level, k, bucket, bp)) return k; bch2_trans_iter_exit(trans, iter); @@ -585,12 +585,12 @@ struct btree *bch2_backpointer_get_node(struct btree_trans *trans, if (IS_ERR(b)) goto err; - if (extent_matches_bp(c, bp.btree_id, bp.level, - bkey_i_to_s_c(&b->key), - bucket, bp)) + if (b && extent_matches_bp(c, bp.btree_id, bp.level, + bkey_i_to_s_c(&b->key), + bucket, bp)) return b; - if (btree_node_will_make_reachable(b)) { + if (b && btree_node_will_make_reachable(b)) { b = ERR_PTR(-BCH_ERR_backpointer_to_overwritten_btree_node); } else { backpointer_not_found(trans, bucket, bp_offset, bp, |