Lines Matching refs:trans

119 static int btrfs_init_inode_security(struct btrfs_trans_handle *trans,  in btrfs_init_inode_security()  argument
125 err = btrfs_init_acl(trans, inode, dir); in btrfs_init_inode_security()
127 err = btrfs_xattr_security_init(trans, inode, dir, qstr); in btrfs_init_inode_security()
136 static int insert_inline_extent(struct btrfs_trans_handle *trans, in insert_inline_extent() argument
168 ret = btrfs_insert_empty_item(trans, root, path, &key, in insert_inline_extent()
178 btrfs_set_file_extent_generation(leaf, ei, trans->transid); in insert_inline_extent()
226 ret = btrfs_update_inode(trans, root, inode); in insert_inline_extent()
245 struct btrfs_trans_handle *trans; in cow_file_range_inline() local
273 trans = btrfs_join_transaction(root); in cow_file_range_inline()
274 if (IS_ERR(trans)) { in cow_file_range_inline()
276 return PTR_ERR(trans); in cow_file_range_inline()
278 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in cow_file_range_inline()
287 ret = __btrfs_drop_extents(trans, root, inode, path, in cow_file_range_inline()
291 btrfs_abort_transaction(trans, root, ret); in cow_file_range_inline()
297 ret = insert_inline_extent(trans, path, extent_inserted, in cow_file_range_inline()
302 btrfs_abort_transaction(trans, root, ret); in cow_file_range_inline()
321 btrfs_end_transaction(trans, root); in cow_file_range_inline()
1221 struct btrfs_trans_handle *trans; in run_delalloc_nocow() local
1257 trans = btrfs_join_transaction_nolock(root); in run_delalloc_nocow()
1259 trans = btrfs_join_transaction(root); in run_delalloc_nocow()
1261 if (IS_ERR(trans)) { in run_delalloc_nocow()
1270 return PTR_ERR(trans); in run_delalloc_nocow()
1273 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in run_delalloc_nocow()
1278 ret = btrfs_lookup_file_extent(trans, root, path, ino, in run_delalloc_nocow()
1351 if (btrfs_cross_ref_exist(trans, root, ino, in run_delalloc_nocow()
1489 err = btrfs_end_transaction(trans, root); in run_delalloc_nocow()
1939 static noinline int add_pending_csums(struct btrfs_trans_handle *trans, in add_pending_csums() argument
1946 trans->adding_csums = 1; in add_pending_csums()
1947 btrfs_csum_file_blocks(trans, in add_pending_csums()
1949 trans->adding_csums = 0; in add_pending_csums()
2067 static int insert_reserved_file_extent(struct btrfs_trans_handle *trans, in insert_reserved_file_extent() argument
2095 ret = __btrfs_drop_extents(trans, root, inode, path, file_pos, in insert_reserved_file_extent()
2107 ret = btrfs_insert_empty_item(trans, root, path, &ins, in insert_reserved_file_extent()
2115 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in insert_reserved_file_extent()
2134 ret = btrfs_alloc_reserved_file_extent(trans, root, in insert_reserved_file_extent()
2424 struct btrfs_trans_handle *trans; in relink_extent_backref() local
2493 trans = btrfs_join_transaction(root); in relink_extent_backref()
2494 if (IS_ERR(trans)) { in relink_extent_backref()
2495 ret = PTR_ERR(trans); in relink_extent_backref()
2529 ret = btrfs_drop_extents(trans, root, inode, start, in relink_extent_backref()
2544 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in relink_extent_backref()
2572 ret = btrfs_insert_empty_item(trans, root, path, &key, in relink_extent_backref()
2575 btrfs_abort_transaction(trans, root, ret); in relink_extent_backref()
2587 btrfs_set_file_extent_generation(leaf, item, trans->transid); in relink_extent_backref()
2597 ret = btrfs_inc_extent_ref(trans, root, new->bytenr, in relink_extent_backref()
2602 btrfs_abort_transaction(trans, root, ret); in relink_extent_backref()
2610 btrfs_end_transaction(trans, root); in relink_extent_backref()
2819 struct btrfs_trans_handle *trans = NULL; in btrfs_finish_ordered_io() local
2860 trans = btrfs_join_transaction_nolock(root); in btrfs_finish_ordered_io()
2862 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
2863 if (IS_ERR(trans)) { in btrfs_finish_ordered_io()
2864 ret = PTR_ERR(trans); in btrfs_finish_ordered_io()
2865 trans = NULL; in btrfs_finish_ordered_io()
2868 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in btrfs_finish_ordered_io()
2869 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
2871 btrfs_abort_transaction(trans, root, ret); in btrfs_finish_ordered_io()
2894 trans = btrfs_join_transaction_nolock(root); in btrfs_finish_ordered_io()
2896 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
2897 if (IS_ERR(trans)) { in btrfs_finish_ordered_io()
2898 ret = PTR_ERR(trans); in btrfs_finish_ordered_io()
2899 trans = NULL; in btrfs_finish_ordered_io()
2903 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in btrfs_finish_ordered_io()
2909 ret = btrfs_mark_extent_written(trans, inode, in btrfs_finish_ordered_io()
2915 ret = insert_reserved_file_extent(trans, inode, in btrfs_finish_ordered_io()
2929 trans->transid); in btrfs_finish_ordered_io()
2931 btrfs_abort_transaction(trans, root, ret); in btrfs_finish_ordered_io()
2935 add_pending_csums(trans, inode, ordered_extent->file_offset, in btrfs_finish_ordered_io()
2939 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
2941 btrfs_abort_transaction(trans, root, ret); in btrfs_finish_ordered_io()
2952 if (trans) in btrfs_finish_ordered_io()
2953 btrfs_end_transaction(trans, root); in btrfs_finish_ordered_io()
3162 void btrfs_orphan_commit_root(struct btrfs_trans_handle *trans, in btrfs_orphan_commit_root() argument
3189 ret = btrfs_del_orphan_item(trans, root->fs_info->tree_root, in btrfs_orphan_commit_root()
3192 btrfs_abort_transaction(trans, root, ret); in btrfs_orphan_commit_root()
3211 int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct inode *inode) in btrfs_orphan_add() argument
3257 ret = btrfs_orphan_reserve_metadata(trans, inode); in btrfs_orphan_add()
3263 ret = btrfs_insert_orphan_item(trans, root, btrfs_ino(inode)); in btrfs_orphan_add()
3274 btrfs_abort_transaction(trans, root, ret); in btrfs_orphan_add()
3283 ret = btrfs_insert_orphan_item(trans, root->fs_info->tree_root, in btrfs_orphan_add()
3286 btrfs_abort_transaction(trans, root, ret); in btrfs_orphan_add()
3297 static int btrfs_orphan_del(struct btrfs_trans_handle *trans, in btrfs_orphan_del() argument
3317 if (trans) in btrfs_orphan_del()
3318 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_del()
3337 struct btrfs_trans_handle *trans; in btrfs_orphan_cleanup() local
3446 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3447 if (IS_ERR(trans)) { in btrfs_orphan_cleanup()
3448 ret = PTR_ERR(trans); in btrfs_orphan_cleanup()
3453 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_cleanup()
3455 btrfs_end_transaction(trans, root); in btrfs_orphan_cleanup()
3478 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3479 if (IS_ERR(trans)) { in btrfs_orphan_cleanup()
3481 ret = PTR_ERR(trans); in btrfs_orphan_cleanup()
3484 ret = btrfs_orphan_add(trans, inode); in btrfs_orphan_cleanup()
3485 btrfs_end_transaction(trans, root); in btrfs_orphan_cleanup()
3514 trans = btrfs_join_transaction(root); in btrfs_orphan_cleanup()
3515 if (!IS_ERR(trans)) in btrfs_orphan_cleanup()
3516 btrfs_end_transaction(trans, root); in btrfs_orphan_cleanup()
3792 static void fill_inode_item(struct btrfs_trans_handle *trans, in fill_inode_item() argument
3833 btrfs_set_token_inode_transid(leaf, item, trans->transid, &token); in fill_inode_item()
3842 static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans, in btrfs_update_inode_item() argument
3855 ret = btrfs_lookup_inode(trans, root, path, &BTRFS_I(inode)->location, in btrfs_update_inode_item()
3867 fill_inode_item(trans, leaf, inode_item, inode); in btrfs_update_inode_item()
3869 btrfs_set_inode_last_trans(trans, inode); in btrfs_update_inode_item()
3879 noinline int btrfs_update_inode(struct btrfs_trans_handle *trans, in btrfs_update_inode() argument
3894 btrfs_update_root_times(trans, root); in btrfs_update_inode()
3896 ret = btrfs_delayed_update_inode(trans, root, inode); in btrfs_update_inode()
3898 btrfs_set_inode_last_trans(trans, inode); in btrfs_update_inode()
3902 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode()
3905 noinline int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans, in btrfs_update_inode_fallback() argument
3911 ret = btrfs_update_inode(trans, root, inode); in btrfs_update_inode_fallback()
3913 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode_fallback()
3922 static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans, in __btrfs_unlink_inode() argument
3943 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in __btrfs_unlink_inode()
3955 ret = btrfs_delete_one_dir_name(trans, root, path, di); in __btrfs_unlink_inode()
3978 ret = btrfs_del_inode_ref(trans, root, name, name_len, ino, in __btrfs_unlink_inode()
3984 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
3988 ret = btrfs_delete_delayed_dir_index(trans, root, dir, index); in __btrfs_unlink_inode()
3990 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
3994 ret = btrfs_del_inode_ref_in_log(trans, root, name, name_len, in __btrfs_unlink_inode()
3997 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
4001 ret = btrfs_del_dir_entries_in_log(trans, root, name, name_len, in __btrfs_unlink_inode()
4006 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
4016 ret = btrfs_update_inode(trans, root, dir); in __btrfs_unlink_inode()
4021 int btrfs_unlink_inode(struct btrfs_trans_handle *trans, in btrfs_unlink_inode() argument
4027 ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len); in btrfs_unlink_inode()
4030 ret = btrfs_update_inode(trans, root, inode); in btrfs_unlink_inode()
4060 struct btrfs_trans_handle *trans; in btrfs_unlink() local
4064 trans = __unlink_start_trans(dir); in btrfs_unlink()
4065 if (IS_ERR(trans)) in btrfs_unlink()
4066 return PTR_ERR(trans); in btrfs_unlink()
4068 btrfs_record_unlink_dir(trans, dir, d_inode(dentry), 0); in btrfs_unlink()
4070 ret = btrfs_unlink_inode(trans, root, dir, d_inode(dentry), in btrfs_unlink()
4076 ret = btrfs_orphan_add(trans, inode); in btrfs_unlink()
4082 btrfs_end_transaction(trans, root); in btrfs_unlink()
4087 int btrfs_unlink_subvol(struct btrfs_trans_handle *trans, in btrfs_unlink_subvol() argument
4104 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in btrfs_unlink_subvol()
4117 ret = btrfs_delete_one_dir_name(trans, root, path, di); in btrfs_unlink_subvol()
4119 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4124 ret = btrfs_del_root_ref(trans, root->fs_info->tree_root, in btrfs_unlink_subvol()
4129 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4139 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4150 ret = btrfs_delete_delayed_dir_index(trans, root, dir, index); in btrfs_unlink_subvol()
4152 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4159 ret = btrfs_update_inode_fallback(trans, root, dir); in btrfs_unlink_subvol()
4161 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4172 struct btrfs_trans_handle *trans; in btrfs_rmdir() local
4179 trans = __unlink_start_trans(dir); in btrfs_rmdir()
4180 if (IS_ERR(trans)) in btrfs_rmdir()
4181 return PTR_ERR(trans); in btrfs_rmdir()
4184 err = btrfs_unlink_subvol(trans, root, dir, in btrfs_rmdir()
4191 err = btrfs_orphan_add(trans, inode); in btrfs_rmdir()
4196 err = btrfs_unlink_inode(trans, root, dir, d_inode(dentry), in btrfs_rmdir()
4201 btrfs_end_transaction(trans, root); in btrfs_rmdir()
4207 static int truncate_space_check(struct btrfs_trans_handle *trans, in truncate_space_check() argument
4217 trans->bytes_reserved += bytes_deleted; in truncate_space_check()
4274 int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, in btrfs_truncate_inode_items() argument
4348 if (btrfs_should_end_transaction(trans, root)) { in btrfs_truncate_inode_items()
4356 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_truncate_inode_items()
4467 err = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
4471 btrfs_abort_transaction(trans, in btrfs_truncate_inode_items()
4484 btrfs_abort_transaction(trans, in btrfs_truncate_inode_items()
4517 ret = btrfs_free_extent(trans, root, extent_start, in btrfs_truncate_inode_items()
4522 if (btrfs_should_throttle_delayed_refs(trans, root)) in btrfs_truncate_inode_items()
4524 trans->delayed_ref_updates * 2, 0); in btrfs_truncate_inode_items()
4526 if (truncate_space_check(trans, root, in btrfs_truncate_inode_items()
4530 if (btrfs_should_throttle_delayed_refs(trans, in btrfs_truncate_inode_items()
4544 ret = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
4548 btrfs_abort_transaction(trans, in btrfs_truncate_inode_items()
4556 unsigned long updates = trans->delayed_ref_updates; in btrfs_truncate_inode_items()
4558 trans->delayed_ref_updates = 0; in btrfs_truncate_inode_items()
4559 ret = btrfs_run_delayed_refs(trans, root, updates * 2); in btrfs_truncate_inode_items()
4579 ret = btrfs_del_items(trans, root, path, pending_del_slot, in btrfs_truncate_inode_items()
4582 btrfs_abort_transaction(trans, root, ret); in btrfs_truncate_inode_items()
4591 unsigned long updates = trans->delayed_ref_updates; in btrfs_truncate_inode_items()
4593 trans->delayed_ref_updates = 0; in btrfs_truncate_inode_items()
4594 ret = btrfs_run_delayed_refs(trans, root, updates * 2); in btrfs_truncate_inode_items()
4723 struct btrfs_trans_handle *trans; in maybe_insert_hole() local
4742 trans = btrfs_start_transaction(root, 3); in maybe_insert_hole()
4743 if (IS_ERR(trans)) in maybe_insert_hole()
4744 return PTR_ERR(trans); in maybe_insert_hole()
4746 ret = btrfs_drop_extents(trans, root, inode, offset, offset + len, 1); in maybe_insert_hole()
4748 btrfs_abort_transaction(trans, root, ret); in maybe_insert_hole()
4749 btrfs_end_transaction(trans, root); in maybe_insert_hole()
4753 ret = btrfs_insert_file_extent(trans, root, btrfs_ino(inode), offset, in maybe_insert_hole()
4756 btrfs_abort_transaction(trans, root, ret); in maybe_insert_hole()
4758 btrfs_update_inode(trans, root, inode); in maybe_insert_hole()
4759 btrfs_end_transaction(trans, root); in maybe_insert_hole()
4897 struct btrfs_trans_handle *trans; in btrfs_setsize() local
4932 trans = btrfs_start_transaction(root, 1); in btrfs_setsize()
4933 if (IS_ERR(trans)) { in btrfs_setsize()
4935 return PTR_ERR(trans); in btrfs_setsize()
4940 ret = btrfs_update_inode(trans, root, inode); in btrfs_setsize()
4942 btrfs_end_transaction(trans, root); in btrfs_setsize()
4958 trans = btrfs_start_transaction(root, 2); in btrfs_setsize()
4959 if (IS_ERR(trans)) in btrfs_setsize()
4960 return PTR_ERR(trans); in btrfs_setsize()
4972 ret = btrfs_orphan_add(trans, inode); in btrfs_setsize()
4973 btrfs_end_transaction(trans, root); in btrfs_setsize()
4995 trans = btrfs_join_transaction(root); in btrfs_setsize()
4996 if (IS_ERR(trans)) { in btrfs_setsize()
5001 err = btrfs_orphan_del(trans, inode); in btrfs_setsize()
5003 btrfs_abort_transaction(trans, root, err); in btrfs_setsize()
5004 btrfs_end_transaction(trans, root); in btrfs_setsize()
5137 struct btrfs_trans_handle *trans; in btrfs_evict_inode() local
5231 trans = btrfs_join_transaction(root); in btrfs_evict_inode()
5232 if (IS_ERR(trans)) { in btrfs_evict_inode()
5244 if (!btrfs_check_space_for_delayed_refs(trans, root)) in btrfs_evict_inode()
5257 ret = btrfs_commit_transaction(trans, root); in btrfs_evict_inode()
5268 trans->block_rsv = rsv; in btrfs_evict_inode()
5270 ret = btrfs_truncate_inode_items(trans, root, inode, 0, 0); in btrfs_evict_inode()
5274 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_evict_inode()
5275 btrfs_end_transaction(trans, root); in btrfs_evict_inode()
5276 trans = NULL; in btrfs_evict_inode()
5287 trans->block_rsv = root->orphan_block_rsv; in btrfs_evict_inode()
5288 btrfs_orphan_del(trans, inode); in btrfs_evict_inode()
5293 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_evict_inode()
5298 btrfs_end_transaction(trans, root); in btrfs_evict_inode()
5914 struct btrfs_trans_handle *trans; in btrfs_write_inode() local
5926 trans = btrfs_join_transaction_nolock(root); in btrfs_write_inode()
5928 trans = btrfs_join_transaction(root); in btrfs_write_inode()
5929 if (IS_ERR(trans)) in btrfs_write_inode()
5930 return PTR_ERR(trans); in btrfs_write_inode()
5931 ret = btrfs_commit_transaction(trans, root); in btrfs_write_inode()
5945 struct btrfs_trans_handle *trans; in btrfs_dirty_inode() local
5951 trans = btrfs_join_transaction(root); in btrfs_dirty_inode()
5952 if (IS_ERR(trans)) in btrfs_dirty_inode()
5953 return PTR_ERR(trans); in btrfs_dirty_inode()
5955 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
5958 btrfs_end_transaction(trans, root); in btrfs_dirty_inode()
5959 trans = btrfs_start_transaction(root, 1); in btrfs_dirty_inode()
5960 if (IS_ERR(trans)) in btrfs_dirty_inode()
5961 return PTR_ERR(trans); in btrfs_dirty_inode()
5963 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
5965 btrfs_end_transaction(trans, root); in btrfs_dirty_inode()
6086 static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, in btrfs_new_inode() argument
6147 BTRFS_I(inode)->generation = trans->transid; in btrfs_new_inode()
6188 ret = btrfs_insert_empty_items(trans, root, path, key, sizes, nitems); in btrfs_new_inode()
6204 fill_inode_item(trans, path->nodes[0], inode_item, inode); in btrfs_new_inode()
6231 btrfs_set_inode_last_trans(trans, inode); in btrfs_new_inode()
6233 btrfs_update_root_times(trans, root); in btrfs_new_inode()
6235 ret = btrfs_inode_inherit_props(trans, inode, dir); in btrfs_new_inode()
6264 int btrfs_add_link(struct btrfs_trans_handle *trans, in btrfs_add_link() argument
6283 ret = btrfs_add_root_ref(trans, root->fs_info->tree_root, in btrfs_add_link()
6287 ret = btrfs_insert_inode_ref(trans, root, name, name_len, ino, in btrfs_add_link()
6295 ret = btrfs_insert_dir_item(trans, root, name, name_len, in btrfs_add_link()
6301 btrfs_abort_transaction(trans, root, ret); in btrfs_add_link()
6309 ret = btrfs_update_inode(trans, root, parent_inode); in btrfs_add_link()
6311 btrfs_abort_transaction(trans, root, ret); in btrfs_add_link()
6318 err = btrfs_del_root_ref(trans, root->fs_info->tree_root, in btrfs_add_link()
6326 err = btrfs_del_inode_ref(trans, root, name, name_len, in btrfs_add_link()
6332 static int btrfs_add_nondir(struct btrfs_trans_handle *trans, in btrfs_add_nondir() argument
6336 int err = btrfs_add_link(trans, dir, inode, in btrfs_add_nondir()
6347 struct btrfs_trans_handle *trans; in btrfs_mknod() local
6360 trans = btrfs_start_transaction(root, 5); in btrfs_mknod()
6361 if (IS_ERR(trans)) in btrfs_mknod()
6362 return PTR_ERR(trans); in btrfs_mknod()
6368 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mknod()
6385 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_mknod()
6389 err = btrfs_add_nondir(trans, dir, dentry, inode, 0, index); in btrfs_mknod()
6393 btrfs_update_inode(trans, root, inode); in btrfs_mknod()
6399 btrfs_end_transaction(trans, root); in btrfs_mknod()
6418 struct btrfs_trans_handle *trans; in btrfs_create() local
6431 trans = btrfs_start_transaction(root, 5); in btrfs_create()
6432 if (IS_ERR(trans)) in btrfs_create()
6433 return PTR_ERR(trans); in btrfs_create()
6439 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_create()
6457 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_create()
6461 err = btrfs_update_inode(trans, root, inode); in btrfs_create()
6465 err = btrfs_add_nondir(trans, dir, dentry, inode, 0, index); in btrfs_create()
6474 btrfs_end_transaction(trans, root); in btrfs_create()
6492 struct btrfs_trans_handle *trans = NULL; in btrfs_link() local
6515 trans = btrfs_start_transaction(root, 5); in btrfs_link()
6516 if (IS_ERR(trans)) { in btrfs_link()
6517 err = PTR_ERR(trans); in btrfs_link()
6518 trans = NULL; in btrfs_link()
6530 err = btrfs_add_nondir(trans, dir, dentry, inode, 1, index); in btrfs_link()
6536 err = btrfs_update_inode(trans, root, inode); in btrfs_link()
6544 err = btrfs_orphan_del(trans, inode); in btrfs_link()
6549 btrfs_log_new_name(trans, inode, NULL, parent); in btrfs_link()
6554 if (trans) in btrfs_link()
6555 btrfs_end_transaction(trans, root); in btrfs_link()
6567 struct btrfs_trans_handle *trans; in btrfs_mkdir() local
6579 trans = btrfs_start_transaction(root, 5); in btrfs_mkdir()
6580 if (IS_ERR(trans)) in btrfs_mkdir()
6581 return PTR_ERR(trans); in btrfs_mkdir()
6587 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mkdir()
6600 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_mkdir()
6605 err = btrfs_update_inode(trans, root, inode); in btrfs_mkdir()
6609 err = btrfs_add_link(trans, dir, inode, dentry->d_name.name, in btrfs_mkdir()
6623 btrfs_end_transaction(trans, root); in btrfs_mkdir()
6758 struct btrfs_trans_handle *trans = NULL; in btrfs_get_extent() local
6800 ret = btrfs_lookup_file_extent(trans, root, path, in btrfs_get_extent()
6801 objectid, start, trans != NULL); in btrfs_get_extent()
6917 if (!trans) { in btrfs_get_extent()
6923 trans = btrfs_join_transaction(root); in btrfs_get_extent()
6925 if (IS_ERR(trans)) in btrfs_get_extent()
6926 return ERR_CAST(trans); in btrfs_get_extent()
6997 if (trans) { in btrfs_get_extent()
6998 ret = btrfs_end_transaction(trans, root); in btrfs_get_extent()
7178 struct btrfs_trans_handle *trans; in can_nocow_extent() local
7280 trans = btrfs_join_transaction(root); in can_nocow_extent()
7281 if (IS_ERR(trans)) { in can_nocow_extent()
7286 ret = btrfs_cross_ref_exist(trans, root, btrfs_ino(inode), in can_nocow_extent()
7288 btrfs_end_transaction(trans, root); in can_nocow_extent()
8858 struct btrfs_trans_handle *trans; in btrfs_truncate() local
8913 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
8914 if (IS_ERR(trans)) { in btrfs_truncate()
8915 err = PTR_ERR(trans); in btrfs_truncate()
8932 trans->block_rsv = rsv; in btrfs_truncate()
8935 ret = btrfs_truncate_inode_items(trans, root, inode, in btrfs_truncate()
8943 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_truncate()
8944 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
8950 btrfs_end_transaction(trans, root); in btrfs_truncate()
8953 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
8954 if (IS_ERR(trans)) { in btrfs_truncate()
8955 ret = err = PTR_ERR(trans); in btrfs_truncate()
8956 trans = NULL; in btrfs_truncate()
8963 trans->block_rsv = rsv; in btrfs_truncate()
8967 trans->block_rsv = root->orphan_block_rsv; in btrfs_truncate()
8968 ret = btrfs_orphan_del(trans, inode); in btrfs_truncate()
8973 if (trans) { in btrfs_truncate()
8974 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_truncate()
8975 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
8979 ret = btrfs_end_transaction(trans, root); in btrfs_truncate()
8995 int btrfs_create_subvol_root(struct btrfs_trans_handle *trans, in btrfs_create_subvol_root() argument
9004 inode = btrfs_new_inode(trans, new_root, NULL, "..", 2, in btrfs_create_subvol_root()
9017 err = btrfs_subvol_inherit_props(trans, new_root, parent_root); in btrfs_create_subvol_root()
9023 err = btrfs_update_inode(trans, new_root, inode); in btrfs_create_subvol_root()
9251 struct btrfs_trans_handle *trans; in btrfs_rename() local
9315 trans = btrfs_start_transaction(root, 11); in btrfs_rename()
9316 if (IS_ERR(trans)) { in btrfs_rename()
9317 ret = PTR_ERR(trans); in btrfs_rename()
9322 btrfs_record_root_in_trans(trans, dest); in btrfs_rename()
9331 btrfs_set_log_full_commit(root->fs_info, trans); in btrfs_rename()
9333 ret = btrfs_insert_inode_ref(trans, dest, in btrfs_rename()
9358 btrfs_record_unlink_dir(trans, old_dir, old_inode, 1); in btrfs_rename()
9362 ret = btrfs_unlink_subvol(trans, root, old_dir, root_objectid, in btrfs_rename()
9366 ret = __btrfs_unlink_inode(trans, root, old_dir, in btrfs_rename()
9371 ret = btrfs_update_inode(trans, root, old_inode); in btrfs_rename()
9374 btrfs_abort_transaction(trans, root, ret); in btrfs_rename()
9384 ret = btrfs_unlink_subvol(trans, dest, new_dir, in btrfs_rename()
9390 ret = btrfs_unlink_inode(trans, dest, new_dir, in btrfs_rename()
9396 ret = btrfs_orphan_add(trans, d_inode(new_dentry)); in btrfs_rename()
9398 btrfs_abort_transaction(trans, root, ret); in btrfs_rename()
9403 ret = btrfs_add_link(trans, new_dir, old_inode, in btrfs_rename()
9407 btrfs_abort_transaction(trans, root, ret); in btrfs_rename()
9416 btrfs_log_new_name(trans, old_inode, old_dir, parent); in btrfs_rename()
9420 btrfs_end_transaction(trans, root); in btrfs_rename()
9642 struct btrfs_trans_handle *trans; in btrfs_symlink() local
9668 trans = btrfs_start_transaction(root, 7); in btrfs_symlink()
9669 if (IS_ERR(trans)) in btrfs_symlink()
9670 return PTR_ERR(trans); in btrfs_symlink()
9676 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_symlink()
9695 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_symlink()
9699 err = btrfs_add_nondir(trans, dir, dentry, inode, 0, index); in btrfs_symlink()
9712 err = btrfs_insert_empty_item(trans, root, path, &key, in btrfs_symlink()
9721 btrfs_set_file_extent_generation(leaf, ei, trans->transid); in btrfs_symlink()
9738 err = btrfs_update_inode(trans, root, inode); in btrfs_symlink()
9748 btrfs_end_transaction(trans, root); in btrfs_symlink()
9765 struct btrfs_trans_handle *trans) in __btrfs_prealloc_file_range() argument
9778 if (trans) in __btrfs_prealloc_file_range()
9782 trans = btrfs_start_transaction(root, 3); in __btrfs_prealloc_file_range()
9783 if (IS_ERR(trans)) { in __btrfs_prealloc_file_range()
9784 ret = PTR_ERR(trans); in __btrfs_prealloc_file_range()
9802 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9807 ret = insert_reserved_file_extent(trans, inode, in __btrfs_prealloc_file_range()
9815 btrfs_abort_transaction(trans, root, ret); in __btrfs_prealloc_file_range()
9817 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9840 em->generation = trans->transid; in __btrfs_prealloc_file_range()
9872 ret = btrfs_update_inode(trans, root, inode); in __btrfs_prealloc_file_range()
9875 btrfs_abort_transaction(trans, root, ret); in __btrfs_prealloc_file_range()
9877 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9882 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9897 struct btrfs_trans_handle *trans, int mode, in btrfs_prealloc_file_range_trans() argument
9902 min_size, actual_len, alloc_hint, trans); in btrfs_prealloc_file_range_trans()
9927 struct btrfs_trans_handle *trans; in btrfs_tmpfile() local
9937 trans = btrfs_start_transaction(root, 5); in btrfs_tmpfile()
9938 if (IS_ERR(trans)) in btrfs_tmpfile()
9939 return PTR_ERR(trans); in btrfs_tmpfile()
9945 inode = btrfs_new_inode(trans, root, dir, NULL, 0, in btrfs_tmpfile()
9959 ret = btrfs_init_inode_security(trans, inode, dir, NULL); in btrfs_tmpfile()
9963 ret = btrfs_update_inode(trans, root, inode); in btrfs_tmpfile()
9966 ret = btrfs_orphan_add(trans, inode); in btrfs_tmpfile()
9983 btrfs_end_transaction(trans, root); in btrfs_tmpfile()