diff options
author | 2024-11-17 23:58:21 -0500 | |
---|---|---|
committer | 2024-12-29 13:30:39 -0500 | |
commit | aca7a26f7f47f0290e00250c6ad53a7814584159 (patch) | |
tree | e60e9a3c200b1821495f18a17d555bcabf002923 /fs/bcachefs/buckets.c | |
parent | bcachefs: bcachefs_metadata_version_disk_accounting_big_endian (diff) | |
download | wireguard-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.c | 7 |
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); |