aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/fs/bcachefs/buckets.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-11-17 23:58:21 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-12-29 13:30:39 -0500
commitaca7a26f7f47f0290e00250c6ad53a7814584159 (patch)
treee60e9a3c200b1821495f18a17d555bcabf002923 /fs/bcachefs/buckets.c
parentbcachefs: bcachefs_metadata_version_disk_accounting_big_endian (diff)
downloadwireguard-linux-aca7a26f7f47f0290e00250c6ad53a7814584159.tar.xz
wireguard-linux-aca7a26f7f47f0290e00250c6ad53a7814584159.zip
bcachefs: bch2_extent_ptr_to_bp() no longer depends on device
bch_backpointer no longer contains the bucket_offset field, it's just a direct LBA mapping (with low bits to account for compressed extent splitting), so we don't need to refer to the device to construct it anymore. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to '')
-rw-r--r--fs/bcachefs/buckets.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c
index bbd37b1ed5d2..30b983cf9780 100644
--- a/fs/bcachefs/buckets.c
+++ b/fs/bcachefs/buckets.c
@@ -572,6 +572,9 @@ static int bch2_trigger_pointer(struct btree_trans *trans,
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);
+
struct bch_dev *ca = bch2_dev_tryget(c, p.ptr.dev);
if (unlikely(!ca)) {
if (insert && p.ptr.dev != BCH_SB_MEMBER_INVALID)
@@ -579,9 +582,7 @@ static int bch2_trigger_pointer(struct btree_trans *trans,
goto err;
}
- struct bpos bucket;
- struct bkey_i_backpointer bp;
- __bch2_extent_ptr_to_bp(trans->c, ca, btree_id, level, k, p, entry, &bucket, &bp, abs_sectors);
+ struct bpos bucket = PTR_BUCKET_POS(ca, &p.ptr);
if (flags & BTREE_TRIGGER_transactional) {
struct bkey_i_alloc_v4 *a = bch2_trans_start_alloc_update(trans, bucket, 0);