Lines Matching refs:upper
2986 INIT_LIST_HEAD(&node->upper); in btrfs_backref_alloc_node()
3017 struct btrfs_backref_node *upper; in btrfs_backref_cleanup_node() local
3024 while (!list_empty(&node->upper)) { in btrfs_backref_cleanup_node()
3025 edge = list_entry(node->upper.next, struct btrfs_backref_edge, in btrfs_backref_cleanup_node()
3027 upper = edge->node[UPPER]; in btrfs_backref_cleanup_node()
3036 if (list_empty(&upper->lower)) { in btrfs_backref_cleanup_node()
3037 list_add_tail(&upper->lower, &cache->leaves); in btrfs_backref_cleanup_node()
3038 upper->lowest = 1; in btrfs_backref_cleanup_node()
3095 struct btrfs_backref_node *upper; in handle_direct_tree_backref() local
3128 upper = btrfs_backref_alloc_node(cache, ref_key->offset, in handle_direct_tree_backref()
3130 if (!upper) { in handle_direct_tree_backref()
3142 upper = rb_entry(rb_node, struct btrfs_backref_node, rb_node); in handle_direct_tree_backref()
3143 ASSERT(upper->checked); in handle_direct_tree_backref()
3146 btrfs_backref_link_edge(edge, cur, upper, LINK_LOWER); in handle_direct_tree_backref()
3169 struct btrfs_backref_node *upper; in handle_indirect_tree_backref() local
3260 upper = btrfs_backref_alloc_node(cache, eb->start, in handle_indirect_tree_backref()
3262 if (!upper) { in handle_indirect_tree_backref()
3268 upper->owner = btrfs_header_owner(eb); in handle_indirect_tree_backref()
3270 upper->cowonly = 1; in handle_indirect_tree_backref()
3277 upper->checked = 0; in handle_indirect_tree_backref()
3279 upper->checked = 1; in handle_indirect_tree_backref()
3286 if (!upper->checked && need_check) { in handle_indirect_tree_backref()
3291 if (upper->checked) in handle_indirect_tree_backref()
3296 upper = rb_entry(rb_node, struct btrfs_backref_node, in handle_indirect_tree_backref()
3298 ASSERT(upper->checked); in handle_indirect_tree_backref()
3300 if (!upper->owner) in handle_indirect_tree_backref()
3301 upper->owner = btrfs_header_owner(eb); in handle_indirect_tree_backref()
3303 btrfs_backref_link_edge(edge, lower, upper, LINK_LOWER); in handle_indirect_tree_backref()
3309 lower = upper; in handle_indirect_tree_backref()
3310 upper = NULL; in handle_indirect_tree_backref()
3357 if (!list_empty(&cur->upper)) { in btrfs_backref_add_tree_node()
3362 ASSERT(list_is_singular(&cur->upper)); in btrfs_backref_add_tree_node()
3363 edge = list_entry(cur->upper.next, struct btrfs_backref_edge, in btrfs_backref_add_tree_node()
3479 list_for_each_entry(edge, &start->upper, list[LOWER]) in btrfs_backref_finish_upper_links()
3483 struct btrfs_backref_node *upper; in btrfs_backref_finish_upper_links() local
3489 upper = edge->node[UPPER]; in btrfs_backref_finish_upper_links()
3493 if (upper->detached) { in btrfs_backref_finish_upper_links()
3498 if (list_empty(&lower->upper)) in btrfs_backref_finish_upper_links()
3510 if (!RB_EMPTY_NODE(&upper->rb_node)) { in btrfs_backref_finish_upper_links()
3511 if (upper->lowest) { in btrfs_backref_finish_upper_links()
3512 list_del_init(&upper->lower); in btrfs_backref_finish_upper_links()
3513 upper->lowest = 0; in btrfs_backref_finish_upper_links()
3516 list_add_tail(&edge->list[UPPER], &upper->lower); in btrfs_backref_finish_upper_links()
3521 if (!upper->checked) { in btrfs_backref_finish_upper_links()
3527 if (start->cowonly != upper->cowonly) { in btrfs_backref_finish_upper_links()
3533 if (!upper->cowonly) { in btrfs_backref_finish_upper_links()
3534 rb_node = rb_simple_insert(&cache->rb_root, upper->bytenr, in btrfs_backref_finish_upper_links()
3535 &upper->rb_node); in btrfs_backref_finish_upper_links()
3538 upper->bytenr, -EEXIST); in btrfs_backref_finish_upper_links()
3543 list_add_tail(&edge->list[UPPER], &upper->lower); in btrfs_backref_finish_upper_links()
3549 list_for_each_entry(edge, &upper->upper, list[LOWER]) in btrfs_backref_finish_upper_links()
3559 struct btrfs_backref_node *upper; in btrfs_backref_error_cleanup() local
3573 upper = edge->node[UPPER]; in btrfs_backref_error_cleanup()
3580 if (list_empty(&lower->upper) && in btrfs_backref_error_cleanup()
3584 if (!RB_EMPTY_NODE(&upper->rb_node)) in btrfs_backref_error_cleanup()
3588 list_for_each_entry(edge, &upper->upper, list[LOWER]) in btrfs_backref_error_cleanup()
3591 if (list_empty(&upper->upper)) in btrfs_backref_error_cleanup()
3592 list_add(&upper->list, &cache->useless_node); in btrfs_backref_error_cleanup()