Lines Matching refs:path
22 struct btrfs_path *path);
71 struct btrfs_path *path) in add_new_free_space_info() argument
83 ret = btrfs_insert_empty_item(trans, root, path, &key, sizeof(*info)); in add_new_free_space_info()
87 leaf = path->nodes[0]; in add_new_free_space_info()
88 info = btrfs_item_ptr(leaf, path->slots[0], in add_new_free_space_info()
92 btrfs_release_path(path); in add_new_free_space_info()
100 struct btrfs_path *path, int cow) in btrfs_search_free_space_info() argument
111 ret = btrfs_search_slot(trans, root, &key, path, 0, cow); in btrfs_search_free_space_info()
121 return btrfs_item_ptr(path->nodes[0], path->slots[0], in btrfs_search_free_space_info()
203 struct btrfs_path *path) in btrfs_convert_free_space_to_bitmaps() argument
235 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in btrfs_convert_free_space_to_bitmaps()
241 leaf = path->nodes[0]; in btrfs_convert_free_space_to_bitmaps()
243 path->slots[0]++; in btrfs_convert_free_space_to_bitmaps()
244 while (path->slots[0] > 0) { in btrfs_convert_free_space_to_bitmaps()
245 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in btrfs_convert_free_space_to_bitmaps()
267 path->slots[0]--; in btrfs_convert_free_space_to_bitmaps()
273 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in btrfs_convert_free_space_to_bitmaps()
278 btrfs_release_path(path); in btrfs_convert_free_space_to_bitmaps()
281 info = btrfs_search_free_space_info(trans, block_group, path, 1); in btrfs_convert_free_space_to_bitmaps()
287 leaf = path->nodes[0]; in btrfs_convert_free_space_to_bitmaps()
294 btrfs_release_path(path); in btrfs_convert_free_space_to_bitmaps()
321 ret = btrfs_insert_empty_item(trans, root, path, &key, in btrfs_convert_free_space_to_bitmaps()
328 leaf = path->nodes[0]; in btrfs_convert_free_space_to_bitmaps()
329 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_convert_free_space_to_bitmaps()
332 btrfs_release_path(path); in btrfs_convert_free_space_to_bitmaps()
347 struct btrfs_path *path) in btrfs_convert_free_space_to_extents() argument
378 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in btrfs_convert_free_space_to_extents()
384 leaf = path->nodes[0]; in btrfs_convert_free_space_to_extents()
386 path->slots[0]++; in btrfs_convert_free_space_to_extents()
387 while (path->slots[0] > 0) { in btrfs_convert_free_space_to_extents()
388 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in btrfs_convert_free_space_to_extents()
411 path->slots[0]--; in btrfs_convert_free_space_to_extents()
412 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_convert_free_space_to_extents()
422 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in btrfs_convert_free_space_to_extents()
427 btrfs_release_path(path); in btrfs_convert_free_space_to_extents()
430 info = btrfs_search_free_space_info(trans, block_group, path, 1); in btrfs_convert_free_space_to_extents()
436 leaf = path->nodes[0]; in btrfs_convert_free_space_to_extents()
443 btrfs_release_path(path); in btrfs_convert_free_space_to_extents()
456 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in btrfs_convert_free_space_to_extents()
461 btrfs_release_path(path); in btrfs_convert_free_space_to_extents()
486 struct btrfs_path *path, in update_free_space_extent_count() argument
497 info = btrfs_search_free_space_info(trans, block_group, path, 1); in update_free_space_extent_count()
501 flags = btrfs_free_space_flags(path->nodes[0], info); in update_free_space_extent_count()
502 extent_count = btrfs_free_space_extent_count(path->nodes[0], info); in update_free_space_extent_count()
505 btrfs_set_free_space_extent_count(path->nodes[0], info, extent_count); in update_free_space_extent_count()
506 btrfs_release_path(path); in update_free_space_extent_count()
510 ret = btrfs_convert_free_space_to_bitmaps(trans, block_group, path); in update_free_space_extent_count()
513 ret = btrfs_convert_free_space_to_extents(trans, block_group, path); in update_free_space_extent_count()
521 struct btrfs_path *path, u64 offset) in btrfs_free_space_test_bit() argument
528 leaf = path->nodes[0]; in btrfs_free_space_test_bit()
529 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in btrfs_free_space_test_bit()
536 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in btrfs_free_space_test_bit()
544 struct btrfs_path *path, u64 *start, u64 *size, in free_space_modify_bits() argument
554 leaf = path->nodes[0]; in free_space_modify_bits()
555 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in free_space_modify_bits()
566 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in free_space_modify_bits()
612 struct btrfs_path *path, in modify_free_space_bitmap() argument
635 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1); in modify_free_space_bitmap()
639 prev_bit_set = btrfs_free_space_test_bit(block_group, path, prev_block); in modify_free_space_bitmap()
642 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in modify_free_space_bitmap()
644 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
653 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1); in modify_free_space_bitmap()
665 free_space_modify_bits(trans, block_group, path, &cur_start, in modify_free_space_bitmap()
669 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
680 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in modify_free_space_bitmap()
682 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
687 next_bit_set = btrfs_free_space_test_bit(block_group, path, end); in modify_free_space_bitmap()
712 btrfs_release_path(path); in modify_free_space_bitmap()
713 return update_free_space_extent_count(trans, block_group, path, new_extents); in modify_free_space_bitmap()
718 struct btrfs_path *path, in remove_free_space_extent() argument
732 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in remove_free_space_extent()
736 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in remove_free_space_extent()
764 ret = btrfs_del_item(trans, root, path); in remove_free_space_extent()
774 btrfs_release_path(path); in remove_free_space_extent()
775 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in remove_free_space_extent()
787 btrfs_release_path(path); in remove_free_space_extent()
788 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in remove_free_space_extent()
794 btrfs_release_path(path); in remove_free_space_extent()
795 return update_free_space_extent_count(trans, block_group, path, new_extents); in remove_free_space_extent()
798 static int using_bitmaps(struct btrfs_block_group *bg, struct btrfs_path *path) in using_bitmaps() argument
806 info = btrfs_search_free_space_info(NULL, bg, path, 0); in using_bitmaps()
809 flags = btrfs_free_space_flags(path->nodes[0], info); in using_bitmaps()
810 btrfs_release_path(path); in using_bitmaps()
821 struct btrfs_path *path, u64 start, u64 size) in __btrfs_remove_from_free_space_tree() argument
825 ret = __add_block_group_free_space(trans, block_group, path); in __btrfs_remove_from_free_space_tree()
829 ret = using_bitmaps(block_group, path); in __btrfs_remove_from_free_space_tree()
834 return modify_free_space_bitmap(trans, block_group, path, in __btrfs_remove_from_free_space_tree()
837 return remove_free_space_extent(trans, block_group, path, start, size); in __btrfs_remove_from_free_space_tree()
844 struct btrfs_path *path; in btrfs_remove_from_free_space_tree() local
850 path = btrfs_alloc_path(); in btrfs_remove_from_free_space_tree()
851 if (!path) { in btrfs_remove_from_free_space_tree()
866 ret = __btrfs_remove_from_free_space_tree(trans, block_group, path, start, size); in btrfs_remove_from_free_space_tree()
873 btrfs_free_path(path); in btrfs_remove_from_free_space_tree()
879 struct btrfs_path *path, in add_free_space_extent() argument
918 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in add_free_space_extent()
922 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in add_free_space_extent()
926 btrfs_release_path(path); in add_free_space_extent()
941 ret = btrfs_del_item(trans, root, path); in add_free_space_extent()
948 btrfs_release_path(path); in add_free_space_extent()
958 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in add_free_space_extent()
962 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in add_free_space_extent()
966 btrfs_release_path(path); in add_free_space_extent()
982 ret = btrfs_del_item(trans, root, path); in add_free_space_extent()
988 btrfs_release_path(path); in add_free_space_extent()
992 ret = btrfs_insert_empty_item(trans, root, path, &new_key, 0); in add_free_space_extent()
996 btrfs_release_path(path); in add_free_space_extent()
997 return update_free_space_extent_count(trans, block_group, path, new_extents); in add_free_space_extent()
1003 struct btrfs_path *path, u64 start, u64 size) in __btrfs_add_to_free_space_tree() argument
1007 ret = __add_block_group_free_space(trans, block_group, path); in __btrfs_add_to_free_space_tree()
1011 ret = using_bitmaps(block_group, path); in __btrfs_add_to_free_space_tree()
1016 return modify_free_space_bitmap(trans, block_group, path, in __btrfs_add_to_free_space_tree()
1019 return add_free_space_extent(trans, block_group, path, start, size); in __btrfs_add_to_free_space_tree()
1026 struct btrfs_path *path; in btrfs_add_to_free_space_tree() local
1032 path = btrfs_alloc_path(); in btrfs_add_to_free_space_tree()
1033 if (!path) { in btrfs_add_to_free_space_tree()
1048 ret = __btrfs_add_to_free_space_tree(trans, block_group, path, start, size); in btrfs_add_to_free_space_tree()
1055 btrfs_free_path(path); in btrfs_add_to_free_space_tree()
1068 BTRFS_PATH_AUTO_FREE(path); in populate_free_space_tree()
1074 path = btrfs_alloc_path(); in populate_free_space_tree()
1075 if (!path) in populate_free_space_tree()
1082 path->reada = READA_FORWARD; in populate_free_space_tree()
1102 ret = btrfs_search_slot_for_read(extent_root, &key, path, 1, 0); in populate_free_space_tree()
1120 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in populate_free_space_tree()
1146 ret = btrfs_next_item(extent_root, path); in populate_free_space_tree()
1229 BTRFS_PATH_AUTO_FREE(path); in clear_free_space_tree()
1235 path = btrfs_alloc_path(); in clear_free_space_tree()
1236 if (!path) in clear_free_space_tree()
1244 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in clear_free_space_tree()
1248 nr = btrfs_header_nritems(path->nodes[0]); in clear_free_space_tree()
1252 path->slots[0] = 0; in clear_free_space_tree()
1253 ret = btrfs_del_items(trans, root, path, 0, nr); in clear_free_space_tree()
1257 btrfs_release_path(path); in clear_free_space_tree()
1391 struct btrfs_path *path) in __add_block_group_free_space() argument
1423 if (!path) { in __add_block_group_free_space()
1424 path = btrfs_alloc_path(); in __add_block_group_free_space()
1425 if (!path) { in __add_block_group_free_space()
1432 ret = add_new_free_space_info(trans, block_group, path); in __add_block_group_free_space()
1438 ret = __btrfs_add_to_free_space_tree(trans, block_group, path, in __add_block_group_free_space()
1445 btrfs_free_path(path); in __add_block_group_free_space()
1468 struct btrfs_path *path; in btrfs_remove_block_group_free_space() local
1483 path = btrfs_alloc_path(); in btrfs_remove_block_group_free_space()
1484 if (!path) { in btrfs_remove_block_group_free_space()
1498 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in btrfs_remove_block_group_free_space()
1504 leaf = path->nodes[0]; in btrfs_remove_block_group_free_space()
1506 path->slots[0]++; in btrfs_remove_block_group_free_space()
1507 while (path->slots[0] > 0) { in btrfs_remove_block_group_free_space()
1508 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in btrfs_remove_block_group_free_space()
1515 path->slots[0]--; in btrfs_remove_block_group_free_space()
1523 path->slots[0]--; in btrfs_remove_block_group_free_space()
1529 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in btrfs_remove_block_group_free_space()
1534 btrfs_release_path(path); in btrfs_remove_block_group_free_space()
1539 btrfs_free_path(path); in btrfs_remove_block_group_free_space()
1544 struct btrfs_path *path, in load_free_space_bitmaps() argument
1566 ret = btrfs_next_item(root, path); in load_free_space_bitmaps()
1572 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in load_free_space_bitmaps()
1584 bit_set = btrfs_free_space_test_bit(block_group, path, offset); in load_free_space_bitmaps()
1627 struct btrfs_path *path, in load_free_space_extents() argument
1648 ret = btrfs_next_item(root, path); in load_free_space_extents()
1654 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in load_free_space_extents()
1691 BTRFS_PATH_AUTO_FREE(path); in btrfs_load_free_space_tree()
1696 path = btrfs_alloc_path(); in btrfs_load_free_space_tree()
1697 if (!path) in btrfs_load_free_space_tree()
1704 path->skip_locking = 1; in btrfs_load_free_space_tree()
1705 path->search_commit_root = 1; in btrfs_load_free_space_tree()
1706 path->reada = READA_FORWARD; in btrfs_load_free_space_tree()
1708 info = btrfs_search_free_space_info(NULL, block_group, path, 0); in btrfs_load_free_space_tree()
1712 extent_count = btrfs_free_space_extent_count(path->nodes[0], info); in btrfs_load_free_space_tree()
1713 flags = btrfs_free_space_flags(path->nodes[0], info); in btrfs_load_free_space_tree()
1721 return load_free_space_bitmaps(caching_ctl, path, extent_count); in btrfs_load_free_space_tree()
1723 return load_free_space_extents(caching_ctl, path, extent_count); in btrfs_load_free_space_tree()