diff options
Diffstat (limited to '')
-rw-r--r-- | fs/bcachefs/backpointers.h | 18 | ||||
-rw-r--r-- | fs/bcachefs/buckets.c | 7 |
2 files changed, 6 insertions, 19 deletions
diff --git a/fs/bcachefs/backpointers.h b/fs/bcachefs/backpointers.h index d126d40dda99..65ede8adbc36 100644 --- a/fs/bcachefs/backpointers.h +++ b/fs/bcachefs/backpointers.h @@ -140,12 +140,11 @@ static inline enum bch_data_type bch2_bkey_ptr_data_type(struct bkey_s_c k, } } -static inline void __bch2_extent_ptr_to_bp( +static inline void bch2_extent_ptr_to_bp(struct bch_fs *c, enum btree_id btree_id, unsigned level, struct bkey_s_c k, struct extent_ptr_decoded p, const union bch_extent_entry *entry, - struct bkey_i_backpointer *bp, - u64 sectors) + struct bkey_i_backpointer *bp) { bkey_backpointer_init(&bp->k_i); bp->k.p = POS(p.ptr.dev, ((u64) p.ptr.offset << MAX_EXTENT_COMPRESS_RATIO_SHIFT) + p.crc.offset); @@ -154,22 +153,11 @@ static inline void __bch2_extent_ptr_to_bp( .level = level, .data_type = bch2_bkey_ptr_data_type(k, p, entry), .bucket_gen = p.ptr.gen, - .bucket_len = sectors, + .bucket_len = ptr_disk_sectors(level ? btree_sectors(c) : k.k->size, p), .pos = k.k->p, }; } -static inline void bch2_extent_ptr_to_bp(struct bch_fs *c, - enum btree_id btree_id, unsigned level, - struct bkey_s_c k, struct extent_ptr_decoded p, - const union bch_extent_entry *entry, - struct bkey_i_backpointer *bp) -{ - u64 sectors = ptr_disk_sectors(level ? btree_sectors(c) : k.k->size, p); - - __bch2_extent_ptr_to_bp(btree_id, level, k, p, entry, bp, sectors); -} - struct bkey_s_c bch2_backpointer_get_key(struct btree_trans *, struct bkey_s_c_backpointer, struct btree_iter *, unsigned); struct btree *bch2_backpointer_get_node(struct btree_trans *, struct bkey_s_c_backpointer, diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c index 30b983cf9780..56d3e3800a89 100644 --- a/fs/bcachefs/buckets.c +++ b/fs/bcachefs/buckets.c @@ -569,11 +569,10 @@ static int bch2_trigger_pointer(struct btree_trans *trans, struct printbuf buf = PRINTBUF; int ret = 0; - u64 abs_sectors = ptr_disk_sectors(level ? btree_sectors(c) : k.k->size, p); - *sectors = insert ? abs_sectors : -abs_sectors; - struct bkey_i_backpointer bp; - __bch2_extent_ptr_to_bp(btree_id, level, k, p, entry, &bp, abs_sectors); + bch2_extent_ptr_to_bp(c, btree_id, level, k, p, entry, &bp); + + *sectors = insert ? bp.v.bucket_len : -(s64) bp.v.bucket_len; struct bch_dev *ca = bch2_dev_tryget(c, p.ptr.dev); if (unlikely(!ca)) { |