Lines Matching full: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()
95 btrfs_release_path(path); in add_new_free_space_info()
103 struct btrfs_path *path, int cow) in search_free_space_info() argument
114 ret = btrfs_search_slot(trans, root, &key, path, 0, cow); in search_free_space_info()
124 return btrfs_item_ptr(path->nodes[0], path->slots[0], in search_free_space_info()
206 struct btrfs_path *path) in convert_free_space_to_bitmaps() argument
237 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in convert_free_space_to_bitmaps()
241 leaf = path->nodes[0]; in convert_free_space_to_bitmaps()
243 path->slots[0]++; in convert_free_space_to_bitmaps()
244 while (path->slots[0] > 0) { in convert_free_space_to_bitmaps()
245 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in convert_free_space_to_bitmaps()
267 path->slots[0]--; in convert_free_space_to_bitmaps()
273 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in convert_free_space_to_bitmaps()
276 btrfs_release_path(path); in convert_free_space_to_bitmaps()
279 info = search_free_space_info(trans, block_group, path, 1); in convert_free_space_to_bitmaps()
284 leaf = path->nodes[0]; in convert_free_space_to_bitmaps()
289 btrfs_release_path(path); in convert_free_space_to_bitmaps()
316 ret = btrfs_insert_empty_item(trans, root, path, &key, in convert_free_space_to_bitmaps()
321 leaf = path->nodes[0]; in convert_free_space_to_bitmaps()
322 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in convert_free_space_to_bitmaps()
325 btrfs_release_path(path); in convert_free_space_to_bitmaps()
342 struct btrfs_path *path) in convert_free_space_to_extents() argument
372 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in convert_free_space_to_extents()
376 leaf = path->nodes[0]; in convert_free_space_to_extents()
378 path->slots[0]++; in convert_free_space_to_extents()
379 while (path->slots[0] > 0) { in convert_free_space_to_extents()
380 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in convert_free_space_to_extents()
403 ptr = btrfs_item_ptr_offset(leaf, path->slots[0] - 1); in convert_free_space_to_extents()
408 path->slots[0]--; in convert_free_space_to_extents()
414 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in convert_free_space_to_extents()
417 btrfs_release_path(path); in convert_free_space_to_extents()
420 info = search_free_space_info(trans, block_group, path, 1); in convert_free_space_to_extents()
425 leaf = path->nodes[0]; in convert_free_space_to_extents()
430 btrfs_release_path(path); in convert_free_space_to_extents()
443 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in convert_free_space_to_extents()
446 btrfs_release_path(path); in convert_free_space_to_extents()
473 struct btrfs_path *path, in update_free_space_extent_count() argument
484 info = search_free_space_info(trans, block_group, path, 1); in update_free_space_extent_count()
489 flags = btrfs_free_space_flags(path->nodes[0], info); in update_free_space_extent_count()
490 extent_count = btrfs_free_space_extent_count(path->nodes[0], info); in update_free_space_extent_count()
493 btrfs_set_free_space_extent_count(path->nodes[0], info, extent_count); in update_free_space_extent_count()
494 btrfs_release_path(path); in update_free_space_extent_count()
498 ret = convert_free_space_to_bitmaps(trans, block_group, path); in update_free_space_extent_count()
501 ret = convert_free_space_to_extents(trans, block_group, path); in update_free_space_extent_count()
510 struct btrfs_path *path, u64 offset) in free_space_test_bit() argument
517 leaf = path->nodes[0]; in free_space_test_bit()
518 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in free_space_test_bit()
525 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in free_space_test_bit()
533 struct btrfs_path *path, u64 *start, u64 *size, in free_space_set_bits() argument
543 leaf = path->nodes[0]; in free_space_set_bits()
544 btrfs_item_key_to_cpu(leaf, &key, path->slots[0]); in free_space_set_bits()
555 ptr = btrfs_item_ptr_offset(leaf, path->slots[0]); in free_space_set_bits()
570 * btrfs_next_leaf() doesn't get the path for writing. We can forgo the fancy
601 struct btrfs_path *path, in modify_free_space_bitmap() argument
623 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1); in modify_free_space_bitmap()
627 prev_bit = free_space_test_bit(block_group, path, prev_block); in modify_free_space_bitmap()
630 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in modify_free_space_bitmap()
632 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
641 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1); in modify_free_space_bitmap()
655 free_space_set_bits(trans, block_group, path, &cur_start, &cur_size, in modify_free_space_bitmap()
659 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
670 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in modify_free_space_bitmap()
672 ret = free_space_next_bitmap(trans, root, path); in modify_free_space_bitmap()
677 next_bit = free_space_test_bit(block_group, path, end); in modify_free_space_bitmap()
704 btrfs_release_path(path); in modify_free_space_bitmap()
705 ret = update_free_space_extent_count(trans, block_group, path, in modify_free_space_bitmap()
714 struct btrfs_path *path, in remove_free_space_extent() argument
728 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in remove_free_space_extent()
732 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in remove_free_space_extent()
760 ret = btrfs_del_item(trans, root, path); 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()
783 btrfs_release_path(path); in remove_free_space_extent()
784 ret = btrfs_insert_empty_item(trans, root, path, &key, 0); in remove_free_space_extent()
790 btrfs_release_path(path); in remove_free_space_extent()
791 ret = update_free_space_extent_count(trans, block_group, path, in remove_free_space_extent()
801 struct btrfs_path *path, u64 start, u64 size) in __remove_from_free_space_tree() argument
808 ret = __add_block_group_free_space(trans, block_group, path); in __remove_from_free_space_tree()
813 info = search_free_space_info(NULL, block_group, path, 0); in __remove_from_free_space_tree()
816 flags = btrfs_free_space_flags(path->nodes[0], info); in __remove_from_free_space_tree()
817 btrfs_release_path(path); in __remove_from_free_space_tree()
820 return modify_free_space_bitmap(trans, block_group, path, in __remove_from_free_space_tree()
823 return remove_free_space_extent(trans, block_group, path, in __remove_from_free_space_tree()
832 struct btrfs_path *path; in remove_from_free_space_tree() local
838 path = btrfs_alloc_path(); in remove_from_free_space_tree()
839 if (!path) { in remove_from_free_space_tree()
852 ret = __remove_from_free_space_tree(trans, block_group, path, start, in remove_from_free_space_tree()
858 btrfs_free_path(path); in remove_from_free_space_tree()
866 struct btrfs_path *path, in add_free_space_extent() argument
905 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in add_free_space_extent()
909 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in add_free_space_extent()
913 btrfs_release_path(path); in add_free_space_extent()
928 ret = btrfs_del_item(trans, root, path); in add_free_space_extent()
935 btrfs_release_path(path); in add_free_space_extent()
945 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in add_free_space_extent()
949 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in add_free_space_extent()
953 btrfs_release_path(path); in add_free_space_extent()
969 ret = btrfs_del_item(trans, root, path); in add_free_space_extent()
975 btrfs_release_path(path); in add_free_space_extent()
979 ret = btrfs_insert_empty_item(trans, root, path, &new_key, 0); in add_free_space_extent()
983 btrfs_release_path(path); in add_free_space_extent()
984 ret = update_free_space_extent_count(trans, block_group, path, in add_free_space_extent()
994 struct btrfs_path *path, u64 start, u64 size) in __add_to_free_space_tree() argument
1001 ret = __add_block_group_free_space(trans, block_group, path); in __add_to_free_space_tree()
1006 info = search_free_space_info(NULL, block_group, path, 0); in __add_to_free_space_tree()
1009 flags = btrfs_free_space_flags(path->nodes[0], info); in __add_to_free_space_tree()
1010 btrfs_release_path(path); in __add_to_free_space_tree()
1013 return modify_free_space_bitmap(trans, block_group, path, in __add_to_free_space_tree()
1016 return add_free_space_extent(trans, block_group, path, start, in __add_to_free_space_tree()
1025 struct btrfs_path *path; in add_to_free_space_tree() local
1031 path = btrfs_alloc_path(); in add_to_free_space_tree()
1032 if (!path) { in add_to_free_space_tree()
1045 ret = __add_to_free_space_tree(trans, block_group, path, start, size); in add_to_free_space_tree()
1050 btrfs_free_path(path); in add_to_free_space_tree()
1065 struct btrfs_path *path, *path2; in populate_free_space_tree() local
1070 path = btrfs_alloc_path(); in populate_free_space_tree()
1071 if (!path) in populate_free_space_tree()
1073 path->reada = READA_FORWARD; in populate_free_space_tree()
1077 btrfs_free_path(path); in populate_free_space_tree()
1099 ret = btrfs_search_slot_for_read(extent_root, &key, path, 1, 0); in populate_free_space_tree()
1107 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in populate_free_space_tree()
1133 ret = btrfs_next_item(extent_root, path); in populate_free_space_tree()
1151 btrfs_free_path(path); in populate_free_space_tree()
1220 struct btrfs_path *path; in clear_free_space_tree() local
1225 path = btrfs_alloc_path(); in clear_free_space_tree()
1226 if (!path) in clear_free_space_tree()
1234 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in clear_free_space_tree()
1238 nr = btrfs_header_nritems(path->nodes[0]); in clear_free_space_tree()
1242 path->slots[0] = 0; in clear_free_space_tree()
1243 ret = btrfs_del_items(trans, root, path, 0, nr); in clear_free_space_tree()
1247 btrfs_release_path(path); in clear_free_space_tree()
1252 btrfs_free_path(path); in clear_free_space_tree()
1368 struct btrfs_path *path) in __add_block_group_free_space() argument
1374 ret = add_new_free_space_info(trans, block_group, path); in __add_block_group_free_space()
1378 return __add_to_free_space_tree(trans, block_group, path, in __add_block_group_free_space()
1387 struct btrfs_path *path = NULL; in add_block_group_free_space() local
1397 path = btrfs_alloc_path(); in add_block_group_free_space()
1398 if (!path) { in add_block_group_free_space()
1403 ret = __add_block_group_free_space(trans, block_group, path); in add_block_group_free_space()
1406 btrfs_free_path(path); in add_block_group_free_space()
1417 struct btrfs_path *path; in remove_block_group_free_space() local
1432 path = btrfs_alloc_path(); in remove_block_group_free_space()
1433 if (!path) { in remove_block_group_free_space()
1446 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1); in remove_block_group_free_space()
1450 leaf = path->nodes[0]; in remove_block_group_free_space()
1452 path->slots[0]++; in remove_block_group_free_space()
1453 while (path->slots[0] > 0) { in remove_block_group_free_space()
1454 btrfs_item_key_to_cpu(leaf, &found_key, path->slots[0] - 1); in remove_block_group_free_space()
1461 path->slots[0]--; in remove_block_group_free_space()
1469 path->slots[0]--; in remove_block_group_free_space()
1475 ret = btrfs_del_items(trans, root, path, path->slots[0], nr); in remove_block_group_free_space()
1478 btrfs_release_path(path); in remove_block_group_free_space()
1483 btrfs_free_path(path); in remove_block_group_free_space()
1490 struct btrfs_path *path, in load_free_space_bitmaps() argument
1512 ret = btrfs_next_item(root, path); in load_free_space_bitmaps()
1518 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in load_free_space_bitmaps()
1528 bit = free_space_test_bit(block_group, path, offset); in load_free_space_bitmaps()
1574 struct btrfs_path *path, in load_free_space_extents() argument
1595 ret = btrfs_next_item(root, path); in load_free_space_extents()
1601 btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); in load_free_space_extents()
1641 struct btrfs_path *path; in load_free_space_tree() local
1647 path = btrfs_alloc_path(); in load_free_space_tree()
1648 if (!path) in load_free_space_tree()
1655 path->skip_locking = 1; in load_free_space_tree()
1656 path->search_commit_root = 1; in load_free_space_tree()
1657 path->reada = READA_FORWARD; in load_free_space_tree()
1659 info = search_free_space_info(NULL, block_group, path, 0); in load_free_space_tree()
1664 extent_count = btrfs_free_space_extent_count(path->nodes[0], info); in load_free_space_tree()
1665 flags = btrfs_free_space_flags(path->nodes[0], info); in load_free_space_tree()
1668 * We left path pointing to the free space info item, so now in load_free_space_tree()
1673 ret = load_free_space_bitmaps(caching_ctl, path, extent_count); in load_free_space_tree()
1675 ret = load_free_space_extents(caching_ctl, path, extent_count); in load_free_space_tree()
1678 btrfs_free_path(path); in load_free_space_tree()