Lines Matching refs:left

1851 	struct extent_buffer *left = NULL;
1926 left = btrfs_read_node_slot(parent, pslot - 1);
1927 if (IS_ERR(left))
1928 left = NULL;
1930 if (left) {
1931 __btrfs_tree_lock(left, BTRFS_NESTING_LEFT);
1932 btrfs_set_lock_blocking_write(left);
1933 wret = btrfs_cow_block(trans, root, left,
1934 parent, pslot - 1, &left,
1959 if (left) {
1960 orig_slot += btrfs_header_nritems(left);
1961 wret = push_node_left(trans, left, mid, 1);
1996 * So, pull some keys from the left.
1997 * There has to be a left pointer at this point because
2001 if (!left) {
2006 wret = balance_node_right(trans, mid, left);
2012 wret = push_node_left(trans, left, mid, 1);
2038 if (left) {
2039 if (btrfs_header_nritems(left) > orig_slot) {
2040 atomic_inc(&left->refs);
2041 /* left was locked after cow */
2042 path->nodes[level] = left;
2050 orig_slot -= btrfs_header_nritems(left);
2063 if (left) {
2064 if (path->nodes[level] != left)
2065 btrfs_tree_unlock(left);
2066 free_extent_buffer(left);
2082 struct extent_buffer *left = NULL;
2103 left = btrfs_read_node_slot(parent, pslot - 1);
2104 if (IS_ERR(left))
2105 left = NULL;
2108 if (left) {
2111 __btrfs_tree_lock(left, BTRFS_NESTING_LEFT);
2112 btrfs_set_lock_blocking_write(left);
2114 left_nr = btrfs_header_nritems(left);
2118 ret = btrfs_cow_block(trans, root, left, parent,
2119 pslot - 1, &left,
2124 wret = push_node_left(trans, left, mid, 0);
2138 if (btrfs_header_nritems(left) > orig_slot) {
2139 path->nodes[level] = left;
2146 btrfs_header_nritems(left);
2148 btrfs_tree_unlock(left);
2149 free_extent_buffer(left);
2153 btrfs_tree_unlock(left);
2154 free_extent_buffer(left);
3140 * This is used after shifting pointers to the left, so it stops
3229 * Leaf @left | Leaf @right
3233 * Key f6 in leaf @left itself is valid, but not valid when the next
3237 * is correct, we only need to bother the last key of @left and the first
3240 static bool check_sibling_keys(struct extent_buffer *left,
3245 int level = btrfs_header_level(left);
3246 int nr_left = btrfs_header_nritems(left);
3254 btrfs_node_key_to_cpu(left, &left_last, nr_left - 1);
3257 btrfs_item_key_to_cpu(left, &left_last, nr_left - 1);
3262 btrfs_crit(left->fs_info,
3263 "bad key order, sibling blocks, left last (%llu %u %llu) right first (%llu %u %llu)",
3273 * try to push data from one node into the next node left in the
3276 * returns 0 if some ptrs were pushed left, < 0 if there was some horrible
3277 * error, and > 0 if there was no room in the left hand block.
3316 /* dst is the left eb, src is the middle eb */
3357 * this will only push up to 1/2 the contents of the left node over
3536 * left and right, if either one works, it returns right away.
3652 * the leaf has left for both items and data
3682 struct extent_buffer *left = path->nodes[0];
3713 int space = btrfs_leaf_free_space(left);
3723 this_item_size = btrfs_item_size(left, item);
3739 /* push left to right */
3742 push_space = btrfs_item_end_nr(left, left_nritems - push_items);
3743 push_space -= leaf_data_end(left);
3752 /* copy from the left data area */
3753 copy_extent_buffer(right, left, BTRFS_LEAF_DATA_OFFSET +
3755 BTRFS_LEAF_DATA_OFFSET + leaf_data_end(left),
3762 /* copy the items from left to right */
3763 copy_extent_buffer(right, left, btrfs_item_nr_offset(0),
3779 btrfs_set_header_nritems(left, left_nritems);
3782 btrfs_mark_buffer_dirty(left);
3784 btrfs_clean_tree_block(left);
3828 struct extent_buffer *left = path->nodes[0];
3871 left_nritems = btrfs_header_nritems(left);
3875 if (check_sibling_keys(left, right)) {
3886 * no need to touch/dirty our left leaf. */
3887 btrfs_tree_unlock(left);
3888 free_extent_buffer(left);
3904 * push some data in the path leaf to the left, trying to free up at
3912 int empty, struct extent_buffer *left,
3916 struct btrfs_fs_info *fs_info = left->fs_info;
3966 /* push data from right to left */
3967 copy_extent_buffer(left, right,
3968 btrfs_item_nr_offset(btrfs_header_nritems(left)),
3975 copy_extent_buffer(left, right, BTRFS_LEAF_DATA_OFFSET +
3976 leaf_data_end(left) - push_space,
3980 old_left_nritems = btrfs_header_nritems(left);
3983 btrfs_init_map_token(&token, left);
3984 old_left_item_size = btrfs_item_offset_nr(left, old_left_nritems - 1);
3994 btrfs_set_header_nritems(left, old_left_nritems + push_items);
4026 btrfs_mark_buffer_dirty(left);
4040 path->nodes[0] = left;
4043 btrfs_tree_unlock(left);
4044 free_extent_buffer(left);
4050 btrfs_tree_unlock(left);
4051 free_extent_buffer(left);
4056 * push some data in the path leaf to the left, trying to free up at
4068 struct extent_buffer *left;
4086 left = btrfs_read_node_slot(path->nodes[1], slot - 1);
4088 * slot - 1 is not valid or we fail to read the left node,
4091 if (IS_ERR(left))
4094 __btrfs_tree_lock(left, BTRFS_NESTING_LEFT);
4095 btrfs_set_lock_blocking_write(left);
4097 free_space = btrfs_leaf_free_space(left);
4104 ret = btrfs_cow_block(trans, root, left,
4105 path->nodes[1], slot - 1, &left,
4114 free_space = btrfs_leaf_free_space(left);
4120 if (check_sibling_keys(left, right)) {
4126 empty, left, free_space, right_nritems,
4129 btrfs_tree_unlock(left);
4130 free_extent_buffer(left);
4292 /* first try to make some room by pushing left and right */