Lines Matching refs:path
17 struct btrfs_path *path);
52 struct btrfs_path *path) in add_new_free_space_info() argument
64 ret = btrfs_insert_empty_item(trans, root, path, &key, sizeof(*info)); in add_new_free_space_info()
68 leaf = path->nodes[0]; in add_new_free_space_info()
69 info = btrfs_item_ptr(leaf, path->slots[0], in add_new_free_space_info()
77 btrfs_release_path(path); in add_new_free_space_info()
85 struct btrfs_path *path, int cow) in search_free_space_info() argument
96 ret = btrfs_search_slot(trans, root, &key, path, 0, cow); in search_free_space_info()
106 return btrfs_item_ptr(path->nodes[0], path->slots[0], in search_free_space_info()
187 struct btrfs_path *path) in convert_free_space_to_bitmaps() argument
219 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in convert_free_space_to_bitmaps()
223 leaf = path->nodes[0]; in convert_free_space_to_bitmaps()
225 path->slots[0]++; in convert_free_space_to_bitmaps()
226 while (path->slots[0] > 0) { in convert_free_space_to_bitmaps()
227 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in convert_free_space_to_bitmaps()
249 path->slots[0]--; in convert_free_space_to_bitmaps()
255 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in convert_free_space_to_bitmaps()
258 btrfs_release_path(path); in convert_free_space_to_bitmaps()
261 info = search_free_space_info(trans, block_group, path, 1); in convert_free_space_to_bitmaps()
266 leaf = path->nodes[0]; in convert_free_space_to_bitmaps()
272 btrfs_release_path(path); in convert_free_space_to_bitmaps()
300 ret = btrfs_insert_empty_item(trans, root, path, &key, in convert_free_space_to_bitmaps()
305 leaf = path->nodes[0]; in convert_free_space_to_bitmaps()
306 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in convert_free_space_to_bitmaps()
310 btrfs_release_path(path); in convert_free_space_to_bitmaps()
327 struct btrfs_path *path) in convert_free_space_to_extents() argument
358 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in convert_free_space_to_extents()
362 leaf = path->nodes[0]; in convert_free_space_to_extents()
364 path->slots[0]++; in convert_free_space_to_extents()
365 while (path->slots[0] > 0) { in convert_free_space_to_extents()
366 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in convert_free_space_to_extents()
389 ptr = btrfs_item_ptr_offset(leaf, path->slots[0] - 1); in convert_free_space_to_extents()
394 path->slots[0]--; in convert_free_space_to_extents()
400 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in convert_free_space_to_extents()
403 btrfs_release_path(path); in convert_free_space_to_extents()
406 info = search_free_space_info(trans, block_group, path, 1); in convert_free_space_to_extents()
411 leaf = path->nodes[0]; in convert_free_space_to_extents()
417 btrfs_release_path(path); in convert_free_space_to_extents()
430 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in convert_free_space_to_extents()
433 btrfs_release_path(path); in convert_free_space_to_extents()
460 struct btrfs_path *path, in update_free_space_extent_count() argument
471 info = search_free_space_info(trans, block_group, path, 1); in update_free_space_extent_count()
476 flags = btrfs_free_space_flags(path->nodes[0], info); in update_free_space_extent_count()
477 extent_count = btrfs_free_space_extent_count(path->nodes[0], info); in update_free_space_extent_count()
480 btrfs_set_free_space_extent_count(path->nodes[0], info, extent_count); in update_free_space_extent_count()
481 btrfs_mark_buffer_dirty(path->nodes[0]); in update_free_space_extent_count()
482 btrfs_release_path(path); in update_free_space_extent_count()
486 ret = convert_free_space_to_bitmaps(trans, block_group, path); in update_free_space_extent_count()
489 ret = convert_free_space_to_extents(trans, block_group, path); in update_free_space_extent_count()
498 struct btrfs_path *path, u64 offset) in free_space_test_bit() argument
505 leaf = path->nodes[0]; in free_space_test_bit()
506 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in free_space_test_bit()
513 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in free_space_test_bit()
520 struct btrfs_path *path, u64 *start, u64 *size, in free_space_set_bits() argument
530 leaf = path->nodes[0]; in free_space_set_bits()
531 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in free_space_set_bits()
542 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in free_space_set_bits()
588 struct btrfs_path *path, in modify_free_space_bitmap() argument
610 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1); in modify_free_space_bitmap()
614 prev_bit = free_space_test_bit(block_group, path, prev_block); in modify_free_space_bitmap()
617 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in modify_free_space_bitmap()
619 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
628 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1); in modify_free_space_bitmap()
642 free_space_set_bits(block_group, path, &cur_start, &cur_size, in modify_free_space_bitmap()
646 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
657 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in modify_free_space_bitmap()
659 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
664 next_bit = free_space_test_bit(block_group, path, end); in modify_free_space_bitmap()
691 btrfs_release_path(path); in modify_free_space_bitmap()
692 ret = update_free_space_extent_count(trans, block_group, path, in modify_free_space_bitmap()
701 struct btrfs_path *path, in remove_free_space_extent() argument
715 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in remove_free_space_extent()
719 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in remove_free_space_extent()
747 ret = btrfs_del_item(trans, root, path); in remove_free_space_extent()
757 btrfs_release_path(path); in remove_free_space_extent()
758 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in remove_free_space_extent()
770 btrfs_release_path(path); in remove_free_space_extent()
771 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in remove_free_space_extent()
777 btrfs_release_path(path); in remove_free_space_extent()
778 ret = update_free_space_extent_count(trans, block_group, path, in remove_free_space_extent()
788 struct btrfs_path *path, u64 start, u64 size) in __remove_from_free_space_tree() argument
795 ret = __add_block_group_free_space(trans, block_group, path); in __remove_from_free_space_tree()
800 info = search_free_space_info(NULL, block_group, path, 0); in __remove_from_free_space_tree()
803 flags = btrfs_free_space_flags(path->nodes[0], info); in __remove_from_free_space_tree()
804 btrfs_release_path(path); in __remove_from_free_space_tree()
807 return modify_free_space_bitmap(trans, block_group, path, in __remove_from_free_space_tree()
810 return remove_free_space_extent(trans, block_group, path, in __remove_from_free_space_tree()
819 struct btrfs_path *path; in remove_from_free_space_tree() local
825 path = btrfs_alloc_path(); in remove_from_free_space_tree()
826 if (!path) { in remove_from_free_space_tree()
839 ret = __remove_from_free_space_tree(trans, block_group, path, start, in remove_from_free_space_tree()
845 btrfs_free_path(path); in remove_from_free_space_tree()
853 struct btrfs_path *path, in add_free_space_extent() argument
892 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in add_free_space_extent()
896 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in add_free_space_extent()
900 btrfs_release_path(path); in add_free_space_extent()
915 ret = btrfs_del_item(trans, root, path); in add_free_space_extent()
922 btrfs_release_path(path); in add_free_space_extent()
932 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in add_free_space_extent()
936 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in add_free_space_extent()
940 btrfs_release_path(path); in add_free_space_extent()
956 ret = btrfs_del_item(trans, root, path); in add_free_space_extent()
962 btrfs_release_path(path); in add_free_space_extent()
966 ret = btrfs_insert_empty_item(trans, root, path, &new_key, 0); in add_free_space_extent()
970 btrfs_release_path(path); in add_free_space_extent()
971 ret = update_free_space_extent_count(trans, block_group, path, in add_free_space_extent()
981 struct btrfs_path *path, u64 start, u64 size) in __add_to_free_space_tree() argument
988 ret = __add_block_group_free_space(trans, block_group, path); in __add_to_free_space_tree()
993 info = search_free_space_info(NULL, block_group, path, 0); in __add_to_free_space_tree()
996 flags = btrfs_free_space_flags(path->nodes[0], info); in __add_to_free_space_tree()
997 btrfs_release_path(path); in __add_to_free_space_tree()
1000 return modify_free_space_bitmap(trans, block_group, path, in __add_to_free_space_tree()
1003 return add_free_space_extent(trans, block_group, path, start, in __add_to_free_space_tree()
1012 struct btrfs_path *path; in add_to_free_space_tree() local
1018 path = btrfs_alloc_path(); in add_to_free_space_tree()
1019 if (!path) { in add_to_free_space_tree()
1032 ret = __add_to_free_space_tree(trans, block_group, path, start, size); in add_to_free_space_tree()
1037 btrfs_free_path(path); in add_to_free_space_tree()
1052 struct btrfs_path *path, *path2; in populate_free_space_tree() local
1057 path = btrfs_alloc_path(); in populate_free_space_tree()
1058 if (!path) in populate_free_space_tree()
1060 path->reada = READA_FORWARD; in populate_free_space_tree()
1064 btrfs_free_path(path); in populate_free_space_tree()
1085 ret = btrfs_search_slot_for_read(extent_root, &key, path, 1, 0); in populate_free_space_tree()
1093 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in populate_free_space_tree()
1119 ret = btrfs_next_item(extent_root, path); in populate_free_space_tree()
1137 btrfs_free_path(path); in populate_free_space_tree()
1197 struct btrfs_path *path; in clear_free_space_tree() local
1202 path = btrfs_alloc_path(); in clear_free_space_tree()
1203 if (!path) in clear_free_space_tree()
1206 path->leave_spinning = 1; in clear_free_space_tree()
1213 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in clear_free_space_tree()
1217 nr = btrfs_header_nritems(path->nodes[0]); in clear_free_space_tree()
1221 path->slots[0] = 0; in clear_free_space_tree()
1222 ret = btrfs_del_items(trans, root, path, 0, nr); in clear_free_space_tree()
1226 btrfs_release_path(path); in clear_free_space_tree()
1231 btrfs_free_path(path); in clear_free_space_tree()
1278 struct btrfs_path *path) in __add_block_group_free_space() argument
1284 ret = add_new_free_space_info(trans, block_group, path); in __add_block_group_free_space()
1288 return __add_to_free_space_tree(trans, block_group, path, in __add_block_group_free_space()
1297 struct btrfs_path *path = NULL; in add_block_group_free_space() local
1307 path = btrfs_alloc_path(); in add_block_group_free_space()
1308 if (!path) { in add_block_group_free_space()
1313 ret = __add_block_group_free_space(trans, block_group, path); in add_block_group_free_space()
1316 btrfs_free_path(path); in add_block_group_free_space()
1327 struct btrfs_path *path; in remove_block_group_free_space() local
1342 path = btrfs_alloc_path(); in remove_block_group_free_space()
1343 if (!path) { in remove_block_group_free_space()
1356 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in remove_block_group_free_space()
1360 leaf = path->nodes[0]; in remove_block_group_free_space()
1362 path->slots[0]++; in remove_block_group_free_space()
1363 while (path->slots[0] > 0) { in remove_block_group_free_space()
1364 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in remove_block_group_free_space()
1371 path->slots[0]--; in remove_block_group_free_space()
1379 path->slots[0]--; in remove_block_group_free_space()
1385 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in remove_block_group_free_space()
1388 btrfs_release_path(path); in remove_block_group_free_space()
1393 btrfs_free_path(path); in remove_block_group_free_space()
1400 struct btrfs_path *path, in load_free_space_bitmaps() argument
1422 ret = btrfs_next_item(root, path); in load_free_space_bitmaps()
1428 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in load_free_space_bitmaps()
1440 bit = free_space_test_bit(block_group, path, offset); in load_free_space_bitmaps()
1481 struct btrfs_path *path, in load_free_space_extents() argument
1500 ret = btrfs_next_item(root, path); in load_free_space_extents()
1506 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in load_free_space_extents()
1546 struct btrfs_path *path; in load_free_space_tree() local
1552 path = btrfs_alloc_path(); in load_free_space_tree()
1553 if (!path) in load_free_space_tree()
1560 path->skip_locking = 1; in load_free_space_tree()
1561 path->search_commit_root = 1; in load_free_space_tree()
1562 path->reada = READA_FORWARD; in load_free_space_tree()
1564 info = search_free_space_info(NULL, block_group, path, 0); in load_free_space_tree()
1569 extent_count = btrfs_free_space_extent_count(path->nodes[0], info); in load_free_space_tree()
1570 flags = btrfs_free_space_flags(path->nodes[0], info); in load_free_space_tree()
1578 ret = load_free_space_bitmaps(caching_ctl, path, extent_count); in load_free_space_tree()
1580 ret = load_free_space_extents(caching_ctl, path, extent_count); in load_free_space_tree()
1583 btrfs_free_path(path); in load_free_space_tree()