@@ -134,28 +134,37 @@ static inline enum bch_data_type bch2_bkey_ptr_data_type(struct bkey_s_c k,
134
134
}
135
135
}
136
136
137
- static inline void bch2_extent_ptr_to_bp (struct bch_fs * c , struct bch_dev * ca ,
137
+ static inline void __bch2_extent_ptr_to_bp (struct bch_fs * c , struct bch_dev * ca ,
138
138
enum btree_id btree_id , unsigned level ,
139
139
struct bkey_s_c k , struct extent_ptr_decoded p ,
140
140
const union bch_extent_entry * entry ,
141
- struct bpos * bucket_pos , struct bch_backpointer * bp )
141
+ struct bpos * bucket_pos , struct bch_backpointer * bp ,
142
+ u64 sectors )
142
143
{
143
- enum bch_data_type data_type = bch2_bkey_ptr_data_type (k , p , entry );
144
- s64 sectors = level ? btree_sectors (c ) : k .k -> size ;
145
144
u32 bucket_offset ;
146
-
147
145
* bucket_pos = PTR_BUCKET_POS_OFFSET (ca , & p .ptr , & bucket_offset );
148
146
* bp = (struct bch_backpointer ) {
149
147
.btree_id = btree_id ,
150
148
.level = level ,
151
- .data_type = data_type ,
149
+ .data_type = bch2_bkey_ptr_data_type ( k , p , entry ) ,
152
150
.bucket_offset = ((u64 ) bucket_offset << MAX_EXTENT_COMPRESS_RATIO_SHIFT ) +
153
151
p .crc .offset ,
154
- .bucket_len = ptr_disk_sectors ( sectors , p ) ,
152
+ .bucket_len = sectors ,
155
153
.pos = k .k -> p ,
156
154
};
157
155
}
158
156
157
+ static inline void bch2_extent_ptr_to_bp (struct bch_fs * c , struct bch_dev * ca ,
158
+ enum btree_id btree_id , unsigned level ,
159
+ struct bkey_s_c k , struct extent_ptr_decoded p ,
160
+ const union bch_extent_entry * entry ,
161
+ struct bpos * bucket_pos , struct bch_backpointer * bp )
162
+ {
163
+ u64 sectors = ptr_disk_sectors (level ? btree_sectors (c ) : k .k -> size , p );
164
+
165
+ __bch2_extent_ptr_to_bp (c , ca , btree_id , level , k , p , entry , bucket_pos , bp , sectors );
166
+ }
167
+
159
168
int bch2_get_next_backpointer (struct btree_trans * , struct bch_dev * ca , struct bpos , int ,
160
169
struct bpos * , struct bch_backpointer * , unsigned );
161
170
struct bkey_s_c bch2_backpointer_get_key (struct btree_trans * , struct btree_iter * ,
0 commit comments