Lines Matching defs:trans

20 static int __add_block_group_free_space(struct btrfs_trans_handle *trans,
69 static int add_new_free_space_info(struct btrfs_trans_handle *trans,
83 ret = btrfs_insert_empty_item(trans, root, path, &key, sizeof(*info));
92 btrfs_mark_buffer_dirty(trans, leaf);
102 struct btrfs_trans_handle *trans,
115 ret = btrfs_search_slot(trans, root, &key, path, 0, cow);
133 static int btrfs_search_prev_slot(struct btrfs_trans_handle *trans,
140 ret = btrfs_search_slot(trans, root, key, p, ins_len, cow);
205 int convert_free_space_to_bitmaps(struct btrfs_trans_handle *trans,
209 struct btrfs_fs_info *fs_info = trans->fs_info;
238 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
274 ret = btrfs_del_items(trans, root, path, path->slots[0], nr);
280 info = search_free_space_info(trans, block_group, path, 1);
290 btrfs_mark_buffer_dirty(trans, leaf);
318 ret = btrfs_insert_empty_item(trans, root, path, &key,
327 btrfs_mark_buffer_dirty(trans, leaf);
338 btrfs_abort_transaction(trans, ret);
343 int convert_free_space_to_extents(struct btrfs_trans_handle *trans,
347 struct btrfs_fs_info *fs_info = trans->fs_info;
375 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
417 ret = btrfs_del_items(trans, root, path, path->slots[0], nr);
423 info = search_free_space_info(trans, block_group, path, 1);
433 btrfs_mark_buffer_dirty(trans, leaf);
447 ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
471 btrfs_abort_transaction(trans, ret);
475 static int update_free_space_extent_count(struct btrfs_trans_handle *trans,
488 info = search_free_space_info(trans, block_group, path, 1);
498 btrfs_mark_buffer_dirty(trans, path->nodes[0]);
503 ret = convert_free_space_to_bitmaps(trans, block_group, path);
506 ret = convert_free_space_to_extents(trans, block_group, path);
536 static void free_space_set_bits(struct btrfs_trans_handle *trans,
567 btrfs_mark_buffer_dirty(trans, leaf);
579 static int free_space_next_bitmap(struct btrfs_trans_handle *trans,
596 return btrfs_search_prev_slot(trans, root, &key, p, 0, 1);
604 static int modify_free_space_bitmap(struct btrfs_trans_handle *trans,
628 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1);
637 ret = free_space_next_bitmap(trans, root, path);
646 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1);
660 free_space_set_bits(trans, block_group, path, &cur_start, &cur_size,
664 ret = free_space_next_bitmap(trans, root, path);
677 ret = free_space_next_bitmap(trans, root, path);
710 ret = update_free_space_extent_count(trans, block_group, path,
717 static int remove_free_space_extent(struct btrfs_trans_handle *trans,
733 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
765 ret = btrfs_del_item(trans, root, path);
776 ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
789 ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
796 ret = update_free_space_extent_count(trans, block_group, path,
804 int __remove_from_free_space_tree(struct btrfs_trans_handle *trans,
813 ret = __add_block_group_free_space(trans, block_group, path);
825 return modify_free_space_bitmap(trans, block_group, path,
828 return remove_free_space_extent(trans, block_group, path,
833 int remove_from_free_space_tree(struct btrfs_trans_handle *trans,
840 if (!btrfs_fs_compat_ro(trans->fs_info, FREE_SPACE_TREE))
849 block_group = btrfs_lookup_block_group(trans->fs_info, start);
857 ret = __remove_from_free_space_tree(trans, block_group, path, start,
865 btrfs_abort_transaction(trans, ret);
869 static int add_free_space_extent(struct btrfs_trans_handle *trans,
910 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
933 ret = btrfs_del_item(trans, root, path);
950 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
974 ret = btrfs_del_item(trans, root, path);
984 ret = btrfs_insert_empty_item(trans, root, path, &new_key, 0);
989 ret = update_free_space_extent_count(trans, block_group, path,
997 int __add_to_free_space_tree(struct btrfs_trans_handle *trans,
1006 ret = __add_block_group_free_space(trans, block_group, path);
1018 return modify_free_space_bitmap(trans, block_group, path,
1021 return add_free_space_extent(trans, block_group, path, start,
1026 int add_to_free_space_tree(struct btrfs_trans_handle *trans,
1033 if (!btrfs_fs_compat_ro(trans->fs_info, FREE_SPACE_TREE))
1042 block_group = btrfs_lookup_block_group(trans->fs_info, start);
1050 ret = __add_to_free_space_tree(trans, block_group, path, start, size);
1057 btrfs_abort_transaction(trans, ret);
1066 static int populate_free_space_tree(struct btrfs_trans_handle *trans,
1086 ret = add_new_free_space_info(trans, block_group, path2);
1103 extent_root = btrfs_extent_root(trans->fs_info, key.objectid);
1120 ret = __add_to_free_space_tree(trans,
1130 start += trans->fs_info->nodesize;
1145 ret = __add_to_free_space_tree(trans, block_group, path2,
1162 struct btrfs_trans_handle *trans;
1169 trans = btrfs_start_transaction(tree_root, 0);
1170 if (IS_ERR(trans))
1171 return PTR_ERR(trans);
1175 free_space_root = btrfs_create_tree(trans,
1191 ret = populate_free_space_tree(trans, block_group);
1200 ret = btrfs_commit_transaction(trans);
1212 btrfs_abort_transaction(trans, ret);
1213 btrfs_end_transaction(trans);
1217 static int clear_free_space_tree(struct btrfs_trans_handle *trans,
1234 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
1243 ret = btrfs_del_items(trans, root, path, 0, nr);
1258 struct btrfs_trans_handle *trans;
1268 trans = btrfs_start_transaction(tree_root, 0);
1269 if (IS_ERR(trans))
1270 return PTR_ERR(trans);
1275 ret = clear_free_space_tree(trans, free_space_root);
1279 ret = btrfs_del_root(trans, &free_space_root->root_key);
1290 btrfs_clear_buffer_dirty(trans, free_space_root->node);
1292 btrfs_free_tree_block(trans, btrfs_root_id(free_space_root),
1297 return btrfs_commit_transaction(trans);
1300 btrfs_abort_transaction(trans, ret);
1301 btrfs_end_transaction(trans);
1307 struct btrfs_trans_handle *trans;
1317 trans = btrfs_start_transaction(free_space_root, 1);
1318 if (IS_ERR(trans))
1319 return PTR_ERR(trans);
1324 ret = clear_free_space_tree(trans, free_space_root);
1334 ret = populate_free_space_tree(trans, block_group);
1344 ret = btrfs_commit_transaction(trans);
1348 btrfs_abort_transaction(trans, ret);
1349 btrfs_end_transaction(trans);
1353 static int __add_block_group_free_space(struct btrfs_trans_handle *trans,
1361 ret = add_new_free_space_info(trans, block_group, path);
1365 return __add_to_free_space_tree(trans, block_group, path,
1370 int add_block_group_free_space(struct btrfs_trans_handle *trans,
1373 struct btrfs_fs_info *fs_info = trans->fs_info;
1390 ret = __add_block_group_free_space(trans, block_group, path);
1396 btrfs_abort_transaction(trans, ret);
1400 int remove_block_group_free_space(struct btrfs_trans_handle *trans,
1411 if (!btrfs_fs_compat_ro(trans->fs_info, FREE_SPACE_TREE))
1433 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
1462 ret = btrfs_del_items(trans, root, path, path->slots[0], nr);
1472 btrfs_abort_transaction(trans, ret);