Lines Matching refs:edge

261 	struct backref_edge *edge;  in alloc_backref_edge()  local
263 edge = kzalloc(sizeof(*edge), GFP_NOFS); in alloc_backref_edge()
264 if (edge) in alloc_backref_edge()
266 return edge; in alloc_backref_edge()
270 struct backref_edge *edge) in free_backref_edge() argument
272 if (edge) { in free_backref_edge()
274 kfree(edge); in free_backref_edge()
340 struct backref_edge *edge; in walk_up_backref() local
344 edge = list_entry(node->upper.next, in walk_up_backref()
346 edges[idx++] = edge; in walk_up_backref()
347 node = edge->node[UPPER]; in walk_up_backref()
360 struct backref_edge *edge; in walk_down_backref() local
365 edge = edges[idx - 1]; in walk_down_backref()
366 lower = edge->node[LOWER]; in walk_down_backref()
367 if (list_is_last(&edge->list[LOWER], &lower->upper)) { in walk_down_backref()
371 edge = list_entry(edge->list[LOWER].next, in walk_down_backref()
373 edges[idx - 1] = edge; in walk_down_backref()
375 return edge->node[UPPER]; in walk_down_backref()
418 struct backref_edge *edge; in remove_backref_node() local
425 edge = list_entry(node->upper.next, struct backref_edge, in remove_backref_node()
427 upper = edge->node[UPPER]; in remove_backref_node()
428 list_del(&edge->list[LOWER]); in remove_backref_node()
429 list_del(&edge->list[UPPER]); in remove_backref_node()
430 free_backref_edge(cache, edge); in remove_backref_node()
660 struct backref_edge *edge; in build_backref_tree() local
718 edge = list_entry(cur->upper.next, struct backref_edge, in build_backref_tree()
720 ASSERT(list_empty(&edge->list[UPPER])); in build_backref_tree()
721 exist = edge->node[UPPER]; in build_backref_tree()
727 list_add_tail(&edge->list[UPPER], &list); in build_backref_tree()
802 edge = alloc_backref_edge(cache); in build_backref_tree()
803 if (!edge) { in build_backref_tree()
811 free_backref_edge(cache, edge); in build_backref_tree()
821 list_add_tail(&edge->list[UPPER], &list); in build_backref_tree()
826 INIT_LIST_HEAD(&edge->list[UPPER]); in build_backref_tree()
828 list_add_tail(&edge->list[LOWER], &cur->upper); in build_backref_tree()
829 edge->node[LOWER] = cur; in build_backref_tree()
830 edge->node[UPPER] = upper; in build_backref_tree()
906 edge = alloc_backref_edge(cache); in build_backref_tree()
907 if (!edge) { in build_backref_tree()
917 free_backref_edge(cache, edge); in build_backref_tree()
945 list_add_tail(&edge->list[UPPER], in build_backref_tree()
950 INIT_LIST_HEAD(&edge->list[UPPER]); in build_backref_tree()
956 INIT_LIST_HEAD(&edge->list[UPPER]); in build_backref_tree()
960 list_add_tail(&edge->list[LOWER], &lower->upper); in build_backref_tree()
961 edge->node[LOWER] = lower; in build_backref_tree()
962 edge->node[UPPER] = upper; in build_backref_tree()
989 edge = list_entry(list.next, struct backref_edge, list[UPPER]); in build_backref_tree()
990 list_del_init(&edge->list[UPPER]); in build_backref_tree()
991 cur = edge->node[UPPER]; in build_backref_tree()
1009 list_for_each_entry(edge, &node->upper, list[LOWER]) in build_backref_tree()
1010 list_add_tail(&edge->list[UPPER], &list); in build_backref_tree()
1013 edge = list_entry(list.next, struct backref_edge, list[UPPER]); in build_backref_tree()
1014 list_del_init(&edge->list[UPPER]); in build_backref_tree()
1015 upper = edge->node[UPPER]; in build_backref_tree()
1017 list_del(&edge->list[LOWER]); in build_backref_tree()
1018 lower = edge->node[LOWER]; in build_backref_tree()
1019 free_backref_edge(cache, edge); in build_backref_tree()
1031 list_add_tail(&edge->list[UPPER], &upper->lower); in build_backref_tree()
1058 list_add_tail(&edge->list[UPPER], &upper->lower); in build_backref_tree()
1060 list_for_each_entry(edge, &upper->upper, list[LOWER]) in build_backref_tree()
1061 list_add_tail(&edge->list[UPPER], &list); in build_backref_tree()
1080 edge = list_entry(upper->lower.next, in build_backref_tree()
1082 list_del(&edge->list[UPPER]); in build_backref_tree()
1083 list_del(&edge->list[LOWER]); in build_backref_tree()
1084 lower = edge->node[LOWER]; in build_backref_tree()
1085 free_backref_edge(cache, edge); in build_backref_tree()
1109 edge = list_first_entry(&list, struct backref_edge, in build_backref_tree()
1111 list_del(&edge->list[UPPER]); in build_backref_tree()
1112 list_del(&edge->list[LOWER]); in build_backref_tree()
1113 lower = edge->node[LOWER]; in build_backref_tree()
1114 upper = edge->node[UPPER]; in build_backref_tree()
1115 free_backref_edge(cache, edge); in build_backref_tree()
1129 list_for_each_entry(edge, &upper->upper, list[LOWER]) in build_backref_tree()
1130 list_add_tail(&edge->list[UPPER], &list); in build_backref_tree()
1165 struct backref_edge *edge; in clone_backref_node() local
1205 list_for_each_entry(edge, &node->lower, list[UPPER]) { in clone_backref_node()
1211 new_edge->node[LOWER] = edge->node[LOWER]; in clone_backref_node()
2572 struct backref_edge *edge; in calcu_metadata_size() local
2590 edge = list_entry(next->upper.next, in calcu_metadata_size()
2592 edges[index++] = edge; in calcu_metadata_size()
2593 next = edge->node[UPPER]; in calcu_metadata_size()
2656 struct backref_edge *edge; in do_relocation() local
2671 list_for_each_entry(edge, &node->upper, list[LOWER]) { in do_relocation()
2676 upper = edge->node[UPPER]; in do_relocation()
2866 struct backref_edge *edge; in update_processed_blocks() local
2881 edge = list_entry(next->upper.next, in update_processed_blocks()
2883 edges[index++] = edge; in update_processed_blocks()
2884 next = edge->node[UPPER]; in update_processed_blocks()