Lines Matching defs:trans

15 static int __add_block_group_free_space(struct btrfs_trans_handle *trans,
50 static int add_new_free_space_info(struct btrfs_trans_handle *trans,
54 struct btrfs_root *root = trans->fs_info->free_space_root;
64 ret = btrfs_insert_empty_item(trans, root, path, &key, sizeof(*info));
83 struct btrfs_trans_handle *trans,
96 ret = btrfs_search_slot(trans, root, &key, path, 0, cow);
114 static int btrfs_search_prev_slot(struct btrfs_trans_handle *trans,
121 ret = btrfs_search_slot(trans, root, key, p, ins_len, cow);
185 int convert_free_space_to_bitmaps(struct btrfs_trans_handle *trans,
189 struct btrfs_fs_info *fs_info = trans->fs_info;
219 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
255 ret = btrfs_del_items(trans, root, path, path->slots[0], nr);
261 info = search_free_space_info(trans, block_group, path, 1);
300 ret = btrfs_insert_empty_item(trans, root, path, &key,
320 btrfs_abort_transaction(trans, ret);
325 int convert_free_space_to_extents(struct btrfs_trans_handle *trans,
329 struct btrfs_fs_info *fs_info = trans->fs_info;
358 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
400 ret = btrfs_del_items(trans, root, path, path->slots[0], nr);
406 info = search_free_space_info(trans, block_group, path, 1);
430 ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
454 btrfs_abort_transaction(trans, ret);
458 static int update_free_space_extent_count(struct btrfs_trans_handle *trans,
471 info = search_free_space_info(trans, block_group, path, 1);
486 ret = convert_free_space_to_bitmaps(trans, block_group, path);
489 ret = convert_free_space_to_extents(trans, block_group, path);
561 static int free_space_next_bitmap(struct btrfs_trans_handle *trans,
578 return btrfs_search_prev_slot(trans, root, &key, p, 0, 1);
586 static int modify_free_space_bitmap(struct btrfs_trans_handle *trans,
610 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1);
619 ret = free_space_next_bitmap(trans, root, path);
628 ret = btrfs_search_prev_slot(trans, root, &key, path, 0, 1);
646 ret = free_space_next_bitmap(trans, root, path);
659 ret = free_space_next_bitmap(trans, root, path);
692 ret = update_free_space_extent_count(trans, block_group, path,
699 static int remove_free_space_extent(struct btrfs_trans_handle *trans,
704 struct btrfs_root *root = trans->fs_info->free_space_root;
715 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
747 ret = btrfs_del_item(trans, root, path);
758 ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
771 ret = btrfs_insert_empty_item(trans, root, path, &key, 0);
778 ret = update_free_space_extent_count(trans, block_group, path,
786 int __remove_from_free_space_tree(struct btrfs_trans_handle *trans,
795 ret = __add_block_group_free_space(trans, block_group, path);
807 return modify_free_space_bitmap(trans, block_group, path,
810 return remove_free_space_extent(trans, block_group, path,
815 int remove_from_free_space_tree(struct btrfs_trans_handle *trans,
822 if (!btrfs_fs_compat_ro(trans->fs_info, FREE_SPACE_TREE))
831 block_group = btrfs_lookup_block_group(trans->fs_info, start);
839 ret = __remove_from_free_space_tree(trans, block_group, path, start,
847 btrfs_abort_transaction(trans, ret);
851 static int add_free_space_extent(struct btrfs_trans_handle *trans,
856 struct btrfs_root *root = trans->fs_info->free_space_root;
892 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
915 ret = btrfs_del_item(trans, root, path);
932 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
956 ret = btrfs_del_item(trans, root, path);
966 ret = btrfs_insert_empty_item(trans, root, path, &new_key, 0);
971 ret = update_free_space_extent_count(trans, block_group, path,
979 int __add_to_free_space_tree(struct btrfs_trans_handle *trans,
988 ret = __add_block_group_free_space(trans, block_group, path);
1000 return modify_free_space_bitmap(trans, block_group, path,
1003 return add_free_space_extent(trans, block_group, path, start,
1008 int add_to_free_space_tree(struct btrfs_trans_handle *trans,
1015 if (!btrfs_fs_compat_ro(trans->fs_info, FREE_SPACE_TREE))
1024 block_group = btrfs_lookup_block_group(trans->fs_info, start);
1032 ret = __add_to_free_space_tree(trans, block_group, path, start, size);
1039 btrfs_abort_transaction(trans, ret);
1048 static int populate_free_space_tree(struct btrfs_trans_handle *trans,
1051 struct btrfs_root *extent_root = trans->fs_info->extent_root;
1068 ret = add_new_free_space_info(trans, block_group, path2);
1101 ret = __add_to_free_space_tree(trans,
1111 start += trans->fs_info->nodesize;
1126 ret = __add_to_free_space_tree(trans, block_group, path2,
1143 struct btrfs_trans_handle *trans;
1150 trans = btrfs_start_transaction(tree_root, 0);
1151 if (IS_ERR(trans))
1152 return PTR_ERR(trans);
1156 free_space_root = btrfs_create_tree(trans,
1168 ret = populate_free_space_tree(trans, block_group);
1177 ret = btrfs_commit_transaction(trans);
1189 btrfs_abort_transaction(trans, ret);
1190 btrfs_end_transaction(trans);
1194 static int clear_free_space_tree(struct btrfs_trans_handle *trans,
1213 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
1222 ret = btrfs_del_items(trans, root, path, 0, nr);
1237 struct btrfs_trans_handle *trans;
1242 trans = btrfs_start_transaction(tree_root, 0);
1243 if (IS_ERR(trans))
1244 return PTR_ERR(trans);
1250 ret = clear_free_space_tree(trans, free_space_root);
1254 ret = btrfs_del_root(trans, &free_space_root->root_key);
1263 btrfs_free_tree_block(trans, free_space_root, free_space_root->node,
1268 return btrfs_commit_transaction(trans);
1271 btrfs_abort_transaction(trans, ret);
1272 btrfs_end_transaction(trans);
1276 static int __add_block_group_free_space(struct btrfs_trans_handle *trans,
1284 ret = add_new_free_space_info(trans, block_group, path);
1288 return __add_to_free_space_tree(trans, block_group, path,
1293 int add_block_group_free_space(struct btrfs_trans_handle *trans,
1296 struct btrfs_fs_info *fs_info = trans->fs_info;
1313 ret = __add_block_group_free_space(trans, block_group, path);
1319 btrfs_abort_transaction(trans, ret);
1323 int remove_block_group_free_space(struct btrfs_trans_handle *trans,
1326 struct btrfs_root *root = trans->fs_info->free_space_root;
1334 if (!btrfs_fs_compat_ro(trans->fs_info, FREE_SPACE_TREE))
1356 ret = btrfs_search_prev_slot(trans, root, &key, path, -1, 1);
1385 ret = btrfs_del_items(trans, root, path, path->slots[0], nr);
1395 btrfs_abort_transaction(trans, ret);