Lines Matching refs:em
15 struct extent_map *em;
20 em = rb_entry(node, struct extent_map, rb_node);
21 remove_extent_mapping(em_tree, em);
24 if (refcount_read(&em->refs) != 1) {
26 "em leak: em (start 0x%llx len 0x%llx block_start 0x%llx block_len 0x%llx) refs %d",
27 em->start, em->len, em->block_start,
28 em->block_len, refcount_read(&em->refs));
30 refcount_set(&em->refs, 1);
33 free_extent_map(em);
49 * -> return em
56 struct extent_map *em;
61 em = alloc_extent_map();
62 if (!em) {
68 em->start = 0;
69 em->len = SZ_16K;
70 em->block_start = 0;
71 em->block_len = SZ_16K;
73 ret = add_extent_mapping(em_tree, em, 0);
79 free_extent_map(em);
82 em = alloc_extent_map();
83 if (!em) {
89 em->start = SZ_16K;
90 em->len = SZ_4K;
91 em->block_start = SZ_32K; /* avoid merging */
92 em->block_len = SZ_4K;
94 ret = add_extent_mapping(em_tree, em, 0);
100 free_extent_map(em);
102 em = alloc_extent_map();
103 if (!em) {
110 em->start = start;
111 em->len = len;
112 em->block_start = start;
113 em->block_len = len;
115 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, em->start, em->len);
121 if (em &&
122 (em->start != 0 || extent_map_end(em) != SZ_16K ||
123 em->block_start != 0 || em->block_len != SZ_16K)) {
125 "case1 [%llu %llu]: ret %d return a wrong em (start %llu len %llu block_start %llu block_len %llu",
126 start, start + len, ret, em->start, em->len,
127 em->block_start, em->block_len);
130 free_extent_map(em);
146 struct extent_map *em;
149 em = alloc_extent_map();
150 if (!em) {
156 em->start = 0;
157 em->len = SZ_1K;
158 em->block_start = EXTENT_MAP_INLINE;
159 em->block_len = (u64)-1;
161 ret = add_extent_mapping(em_tree, em, 0);
167 free_extent_map(em);
170 em = alloc_extent_map();
171 if (!em) {
177 em->start = SZ_4K;
178 em->len = SZ_4K;
179 em->block_start = SZ_4K;
180 em->block_len = SZ_4K;
182 ret = add_extent_mapping(em_tree, em, 0);
188 free_extent_map(em);
190 em = alloc_extent_map();
191 if (!em) {
198 em->start = 0;
199 em->len = SZ_1K;
200 em->block_start = EXTENT_MAP_INLINE;
201 em->block_len = (u64)-1;
203 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, em->start, em->len);
209 if (em &&
210 (em->start != 0 || extent_map_end(em) != SZ_1K ||
211 em->block_start != EXTENT_MAP_INLINE || em->block_len != (u64)-1)) {
213 "case2 [0 1K]: ret %d return a wrong em (start %llu len %llu block_start %llu block_len %llu",
214 ret, em->start, em->len, em->block_start,
215 em->block_len);
218 free_extent_map(em);
228 struct extent_map *em;
232 em = alloc_extent_map();
233 if (!em) {
239 em->start = SZ_4K;
240 em->len = SZ_4K;
241 em->block_start = SZ_4K;
242 em->block_len = SZ_4K;
244 ret = add_extent_mapping(em_tree, em, 0);
250 free_extent_map(em);
252 em = alloc_extent_map();
253 if (!em) {
260 em->start = 0;
261 em->len = SZ_16K;
262 em->block_start = 0;
263 em->block_len = SZ_16K;
265 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len);
273 * Since bytes within em are contiguous, em->block_start is identical to
274 * em->start.
276 if (em &&
277 (start < em->start || start + len > extent_map_end(em) ||
278 em->start != em->block_start || em->len != em->block_len)) {
280 "case3 [0x%llx 0x%llx): ret %d em (start 0x%llx len 0x%llx block_start 0x%llx block_len 0x%llx)",
281 start, start + len, ret, em->start, em->len,
282 em->block_start, em->block_len);
285 free_extent_map(em);
300 * t1 goes ahead of t2 and adds em [4K, 8K) into tree.
327 struct extent_map *em;
331 em = alloc_extent_map();
332 if (!em) {
338 em->start = 0;
339 em->len = SZ_8K;
340 em->block_start = 0;
341 em->block_len = SZ_8K;
343 ret = add_extent_mapping(em_tree, em, 0);
349 free_extent_map(em);
351 em = alloc_extent_map();
352 if (!em) {
359 em->start = SZ_8K;
360 em->len = 24 * SZ_1K;
361 em->block_start = SZ_16K; /* avoid merging */
362 em->block_len = 24 * SZ_1K;
364 ret = add_extent_mapping(em_tree, em, 0);
370 free_extent_map(em);
372 em = alloc_extent_map();
373 if (!em) {
379 em->start = 0;
380 em->len = SZ_32K;
381 em->block_start = 0;
382 em->block_len = SZ_32K;
384 ret = btrfs_add_extent_mapping(fs_info, em_tree, &em, start, len);
391 if (em && (start < em->start || start + len > extent_map_end(em))) {
393 "case4 [0x%llx 0x%llx): ret %d, added wrong em (start 0x%llx len 0x%llx block_start 0x%llx block_len 0x%llx)",
394 start, len, ret, em->start, em->len, em->block_start,
395 em->block_len);
398 free_extent_map(em);
413 * t1 goes ahead of t2 and splits em [0, 32K) to em [0K, 8K) and [8K 32K).
459 struct extent_map *em;
465 em = alloc_extent_map();
466 if (!em) {
473 kfree(em);
478 set_bit(EXTENT_FLAG_FS_MAPPING, &em->flags);
480 em->start = SZ_4G;
481 em->len = test->data_stripe_size * test->num_data_stripes;
482 em->block_len = em->len;
483 em->orig_block_len = test->data_stripe_size;
484 em->map_lookup = map;
503 ret = add_extent_mapping(&fs_info->mapping_tree, em, 0);
510 ret = btrfs_rmap_block(fs_info, em->start, btrfs_sb_offset(1),
540 remove_extent_mapping(&fs_info->mapping_tree, em);
543 free_extent_map(em);
546 free_extent_map(em);