Lines Matching refs:en
368 struct extent_node *en; in __attach_extent_node() local
370 en = kmem_cache_alloc(extent_node_slab, GFP_ATOMIC); in __attach_extent_node()
371 if (!en) in __attach_extent_node()
374 en->ei = *ei; in __attach_extent_node()
375 INIT_LIST_HEAD(&en->list); in __attach_extent_node()
377 rb_link_node(&en->rb_node, parent, p); in __attach_extent_node()
378 rb_insert_color(&en->rb_node, &et->root); in __attach_extent_node()
381 return en; in __attach_extent_node()
385 struct extent_tree *et, struct extent_node *en) in __detach_extent_node() argument
387 rb_erase(&en->rb_node, &et->root); in __detach_extent_node()
391 if (et->cached_en == en) in __detach_extent_node()
442 struct extent_node *en; in __lookup_extent_tree() local
452 en = rb_entry(node, struct extent_node, rb_node); in __lookup_extent_tree()
454 if (fofs < en->ei.fofs) { in __lookup_extent_tree()
456 } else if (fofs >= en->ei.fofs + en->ei.len) { in __lookup_extent_tree()
459 et->cached_en = en; in __lookup_extent_tree()
460 return en; in __lookup_extent_tree()
467 struct extent_tree *et, struct extent_node *en) in __try_back_merge() argument
472 node = rb_prev(&en->rb_node); in __try_back_merge()
477 if (__is_back_mergeable(&en->ei, &prev->ei)) { in __try_back_merge()
478 en->ei.fofs = prev->ei.fofs; in __try_back_merge()
479 en->ei.blk = prev->ei.blk; in __try_back_merge()
480 en->ei.len += prev->ei.len; in __try_back_merge()
488 struct extent_tree *et, struct extent_node *en) in __try_front_merge() argument
493 node = rb_next(&en->rb_node); in __try_front_merge()
498 if (__is_front_mergeable(&en->ei, &next->ei)) { in __try_front_merge()
499 en->ei.len += next->ei.len; in __try_front_merge()
512 struct extent_node *en; in __insert_extent_tree() local
516 en = rb_entry(parent, struct extent_node, rb_node); in __insert_extent_tree()
518 if (ei->fofs < en->ei.fofs) { in __insert_extent_tree()
519 if (__is_front_mergeable(ei, &en->ei)) { in __insert_extent_tree()
521 en->ei.fofs = ei->fofs; in __insert_extent_tree()
522 en->ei.blk = ei->blk; in __insert_extent_tree()
523 en->ei.len += ei->len; in __insert_extent_tree()
524 *den = __try_back_merge(sbi, et, en); in __insert_extent_tree()
525 return en; in __insert_extent_tree()
528 } else if (ei->fofs >= en->ei.fofs + en->ei.len) { in __insert_extent_tree()
529 if (__is_back_mergeable(ei, &en->ei)) { in __insert_extent_tree()
531 en->ei.len += ei->len; in __insert_extent_tree()
532 *den = __try_front_merge(sbi, et, en); in __insert_extent_tree()
533 return en; in __insert_extent_tree()
548 struct extent_node *en; in __free_extent_tree() local
554 en = rb_entry(node, struct extent_node, rb_node); in __free_extent_tree()
558 if (!list_empty(&en->list)) in __free_extent_tree()
559 list_del_init(&en->list); in __free_extent_tree()
563 if (free_all || list_empty(&en->list)) { in __free_extent_tree()
564 __detach_extent_node(sbi, et, en); in __free_extent_tree()
565 kmem_cache_free(extent_node_slab, en); in __free_extent_tree()
578 struct extent_node *en; in f2fs_init_extent_tree() local
593 en = __insert_extent_tree(sbi, et, &ei, NULL); in f2fs_init_extent_tree()
594 if (en) { in f2fs_init_extent_tree()
595 et->cached_en = en; in f2fs_init_extent_tree()
598 list_add_tail(&en->list, &sbi->extent_list); in f2fs_init_extent_tree()
611 struct extent_node *en; in f2fs_lookup_extent_tree() local
620 en = __lookup_extent_tree(et, pgofs); in f2fs_lookup_extent_tree()
621 if (en) { in f2fs_lookup_extent_tree()
622 *ei = en->ei; in f2fs_lookup_extent_tree()
624 if (!list_empty(&en->list)) in f2fs_lookup_extent_tree()
625 list_move_tail(&en->list, &sbi->extent_list); in f2fs_lookup_extent_tree()
632 trace_f2fs_lookup_extent_tree_end(inode, pgofs, en); in f2fs_lookup_extent_tree()
635 return en ? true : false; in f2fs_lookup_extent_tree()
643 struct extent_node *en = NULL, *en1 = NULL, *en2 = NULL, *en3 = NULL; in f2fs_update_extent_tree() local
655 en = __lookup_extent_tree(et, fofs); in f2fs_update_extent_tree()
656 if (!en) in f2fs_update_extent_tree()
659 dei = en->ei; in f2fs_update_extent_tree()
660 __detach_extent_node(sbi, et, en); in f2fs_update_extent_tree()
689 if (en && !list_empty(&en->list)) in f2fs_update_extent_tree()
690 list_del(&en->list); in f2fs_update_extent_tree()
711 if (en) in f2fs_update_extent_tree()
712 kmem_cache_free(extent_node_slab, en); in f2fs_update_extent_tree()
740 struct extent_node *en; in f2fs_preserve_extent_tree() local
743 en = et->cached_en; in f2fs_preserve_extent_tree()
749 en = rb_entry(node, struct extent_node, rb_node); in f2fs_preserve_extent_tree()
752 if (__is_extent_same(ext, &en->ei)) in f2fs_preserve_extent_tree()
755 *ext = en->ei; in f2fs_preserve_extent_tree()
772 struct extent_node *en, *tmp; in f2fs_shrink_extent_tree() local
786 list_for_each_entry_safe(en, tmp, &sbi->extent_list, list) { in f2fs_shrink_extent_tree()
789 list_del_init(&en->list); in f2fs_shrink_extent_tree()