Lines Matching defs:upper

2571 	INIT_LIST_HEAD(&node->upper);
2594 * upper edges and any uncached nodes in the path.
2602 struct btrfs_backref_node *upper;
2609 while (!list_empty(&node->upper)) {
2610 edge = list_entry(node->upper.next, struct btrfs_backref_edge,
2612 upper = edge->node[UPPER];
2621 if (list_empty(&upper->lower)) {
2622 list_add_tail(&upper->lower, &cache->leaves);
2623 upper->lowest = 1;
2680 struct btrfs_backref_node *upper;
2713 upper = btrfs_backref_alloc_node(cache, ref_key->offset,
2715 if (!upper) {
2721 * Backrefs for the upper level block isn't cached, add the
2727 upper = rb_entry(rb_node, struct btrfs_backref_node, rb_node);
2728 ASSERT(upper->checked);
2731 btrfs_backref_link_edge(edge, cur, upper, LINK_LOWER);
2754 struct btrfs_backref_node *upper;
2845 upper = btrfs_backref_alloc_node(cache, eb->start,
2847 if (!upper) {
2853 upper->owner = btrfs_header_owner(eb);
2855 upper->cowonly = 1;
2862 upper->checked = 0;
2864 upper->checked = 1;
2871 if (!upper->checked && need_check) {
2876 if (upper->checked)
2881 upper = rb_entry(rb_node, struct btrfs_backref_node,
2883 ASSERT(upper->checked);
2885 if (!upper->owner)
2886 upper->owner = btrfs_header_owner(eb);
2888 btrfs_backref_link_edge(edge, lower, upper, LINK_LOWER);
2894 lower = upper;
2895 upper = NULL;
2905 * NOTE: Even if the function returned 0, @cur is not yet cached as its upper
2942 if (!list_empty(&cur->upper)) {
2947 ASSERT(list_is_singular(&cur->upper));
2948 edge = list_entry(cur->upper.next, struct btrfs_backref_edge,
2953 * Add the upper level block to pending list if we need check
3064 list_for_each_entry(edge, &start->upper, list[LOWER])
3068 struct btrfs_backref_node *upper;
3074 upper = edge->node[UPPER];
3078 if (upper->detached) {
3083 if (list_empty(&lower->upper))
3091 * So if we have upper->rb_node populated, this means a cache
3092 * hit. We only need to link the edge, as @upper and all its
3095 if (!RB_EMPTY_NODE(&upper->rb_node)) {
3096 if (upper->lowest) {
3097 list_del_init(&upper->lower);
3098 upper->lowest = 0;
3101 list_add_tail(&edge->list[UPPER], &upper->lower);
3106 if (!upper->checked) {
3112 if (start->cowonly != upper->cowonly) {
3118 if (!upper->cowonly) {
3119 rb_node = rb_simple_insert(&cache->rb_root, upper->bytenr,
3120 &upper->rb_node);
3123 upper->bytenr, -EEXIST);
3128 list_add_tail(&edge->list[UPPER], &upper->lower);
3132 * to finish the upper linkage
3134 list_for_each_entry(edge, &upper->upper, list[LOWER])
3144 struct btrfs_backref_node *upper;
3158 upper = edge->node[UPPER];
3162 * Lower is no longer linked to any upper backref nodes and
3165 if (list_empty(&lower->upper) &&
3169 if (!RB_EMPTY_NODE(&upper->rb_node))
3172 /* Add this guy's upper edges to the list to process */
3173 list_for_each_entry(edge, &upper->upper, list[LOWER])
3176 if (list_empty(&upper->upper))
3177 list_add(&upper->list, &cache->useless_node);