Lines Matching full:en
138 struct extent_node *en) in __try_update_largest_extent() argument
142 if (en->ei.len <= et->largest.len) in __try_update_largest_extent()
145 et->largest = en->ei; in __try_update_largest_extent()
186 struct extent_node *en; in __lookup_extent_node() local
195 en = rb_entry(node, struct extent_node, rb_node); in __lookup_extent_node()
197 if (fofs < en->ei.fofs) in __lookup_extent_node()
199 else if (fofs >= en->ei.fofs + en->ei.len) in __lookup_extent_node()
202 return en; in __lookup_extent_node()
227 struct extent_node *en = cached_en; in __lookup_extent_node_ret() local
237 if (en && en->ei.fofs <= fofs && en->ei.fofs + en->ei.len > fofs) in __lookup_extent_node_ret()
244 en = rb_entry(*pnode, struct extent_node, rb_node); in __lookup_extent_node_ret()
246 if (fofs < en->ei.fofs) { in __lookup_extent_node_ret()
248 } else if (fofs >= en->ei.fofs + en->ei.len) { in __lookup_extent_node_ret()
259 en = rb_entry(parent, struct extent_node, rb_node); in __lookup_extent_node_ret()
261 if (parent && fofs > en->ei.fofs) in __lookup_extent_node_ret()
266 if (parent && fofs < en->ei.fofs) in __lookup_extent_node_ret()
272 if (fofs == en->ei.fofs) { in __lookup_extent_node_ret()
274 tmp_node = rb_prev(&en->rb_node); in __lookup_extent_node_ret()
278 if (fofs == en->ei.fofs + en->ei.len - 1) { in __lookup_extent_node_ret()
280 tmp_node = rb_next(&en->rb_node); in __lookup_extent_node_ret()
284 return en; in __lookup_extent_node_ret()
296 struct extent_node *en; in __attach_extent_node() local
298 en = f2fs_kmem_cache_alloc(extent_node_slab, GFP_ATOMIC, false, sbi); in __attach_extent_node()
299 if (!en) in __attach_extent_node()
302 en->ei = *ei; in __attach_extent_node()
303 INIT_LIST_HEAD(&en->list); in __attach_extent_node()
304 en->et = et; in __attach_extent_node()
306 rb_link_node(&en->rb_node, parent, p); in __attach_extent_node()
307 rb_insert_color_cached(&en->rb_node, &et->root, leftmost); in __attach_extent_node()
310 return en; in __attach_extent_node()
314 struct extent_tree *et, struct extent_node *en) in __detach_extent_node() argument
318 rb_erase_cached(&en->rb_node, &et->root); in __detach_extent_node()
322 if (et->cached_en == en) in __detach_extent_node()
324 kmem_cache_free(extent_node_slab, en); in __detach_extent_node()
334 struct extent_tree *et, struct extent_node *en) in __release_extent_node() argument
339 f2fs_bug_on(sbi, list_empty(&en->list)); in __release_extent_node()
340 list_del_init(&en->list); in __release_extent_node()
343 __detach_extent_node(sbi, et, en); in __release_extent_node()
385 struct extent_node *en; in __free_extent_tree() local
392 en = rb_entry(node, struct extent_node, rb_node); in __free_extent_tree()
393 __release_extent_node(sbi, et, en); in __free_extent_tree()
416 struct extent_node *en; in f2fs_init_read_extent_tree() local
443 en = __attach_extent_node(sbi, et, &ei, NULL, in f2fs_init_read_extent_tree()
445 if (en) { in f2fs_init_read_extent_tree()
446 et->largest = en->ei; in f2fs_init_read_extent_tree()
447 et->cached_en = en; in f2fs_init_read_extent_tree()
450 list_add_tail(&en->list, &eti->extent_list); in f2fs_init_read_extent_tree()
486 struct extent_node *en; in __lookup_extent_tree() local
510 en = __lookup_extent_node(&et->root, et->cached_en, pgofs); in __lookup_extent_tree()
511 if (!en) in __lookup_extent_tree()
514 if (en == et->cached_en) in __lookup_extent_tree()
519 *ei = en->ei; in __lookup_extent_tree()
521 if (!list_empty(&en->list)) { in __lookup_extent_tree()
522 list_move_tail(&en->list, &eti->extent_list); in __lookup_extent_tree()
523 et->cached_en = en; in __lookup_extent_tree()
544 struct extent_node *en = NULL; in __try_merge_extent_node() local
549 en = prev_ex; in __try_merge_extent_node()
557 if (en) in __try_merge_extent_node()
560 en = next_ex; in __try_merge_extent_node()
563 if (!en) in __try_merge_extent_node()
566 __try_update_largest_extent(et, en); in __try_merge_extent_node()
569 if (!list_empty(&en->list)) { in __try_merge_extent_node()
570 list_move_tail(&en->list, &eti->extent_list); in __try_merge_extent_node()
571 et->cached_en = en; in __try_merge_extent_node()
574 return en; in __try_merge_extent_node()
586 struct extent_node *en = NULL; in __insert_extent_tree() local
599 en = rb_entry(parent, struct extent_node, rb_node); in __insert_extent_tree()
601 if (ei->fofs < en->ei.fofs) { in __insert_extent_tree()
603 } else if (ei->fofs >= en->ei.fofs + en->ei.len) { in __insert_extent_tree()
612 en = __attach_extent_node(sbi, et, ei, parent, p, leftmost); in __insert_extent_tree()
613 if (!en) in __insert_extent_tree()
616 __try_update_largest_extent(et, en); in __insert_extent_tree()
620 list_add_tail(&en->list, &eti->extent_list); in __insert_extent_tree()
621 et->cached_en = en; in __insert_extent_tree()
623 return en; in __insert_extent_tree()
655 struct extent_node *en = NULL, *en1 = NULL; in __update_extent_tree_range() local
693 en = __lookup_extent_node_ret(&et->root, in __update_extent_tree_range()
698 if (!en) in __update_extent_tree_range()
699 en = next_en; in __update_extent_tree_range()
702 while (en && en->ei.fofs < end) { in __update_extent_tree_range()
708 dei = en->ei; in __update_extent_tree_range()
714 en->ei.len = fofs - en->ei.fofs; in __update_extent_tree_range()
715 prev_en = en; in __update_extent_tree_range()
733 __set_extent_info(&en->ei, in __update_extent_tree_range()
734 end, en->ei.len - (end - dei.fofs), in __update_extent_tree_range()
735 en->ei.blk + (end - dei.fofs), true, in __update_extent_tree_range()
738 next_en = en; in __update_extent_tree_range()
744 struct rb_node *node = rb_next(&en->rb_node); in __update_extent_tree_range()
751 __try_update_largest_extent(et, en); in __update_extent_tree_range()
753 __release_extent_node(sbi, et, en); in __update_extent_tree_range()
764 en = next_en; in __update_extent_tree_range()
821 struct extent_node *en = NULL; in f2fs_update_read_extent_tree_range_compressed() local
836 en = __lookup_extent_node_ret(&et->root, in f2fs_update_read_extent_tree_range_compressed()
841 if (en) in f2fs_update_read_extent_tree_range_compressed()
958 struct extent_node *en; in __shrink_extent_tree() local
1004 en = list_first_entry(&eti->extent_list, in __shrink_extent_tree()
1006 et = en->et; in __shrink_extent_tree()
1009 list_move_tail(&en->list, &eti->extent_list); in __shrink_extent_tree()
1013 list_del_init(&en->list); in __shrink_extent_tree()
1016 __detach_extent_node(sbi, et, en); in __shrink_extent_tree()