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()
314 btrfs_end_transaction(trans, root); in cow_file_range_inline()
1211 struct btrfs_trans_handle *trans; in run_delalloc_nocow() local
1247 trans = btrfs_join_transaction_nolock(root); in run_delalloc_nocow()
1249 trans = btrfs_join_transaction(root); in run_delalloc_nocow()
1251 if (IS_ERR(trans)) { in run_delalloc_nocow()
1260 return PTR_ERR(trans); in run_delalloc_nocow()
1263 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in run_delalloc_nocow()
1268 ret = btrfs_lookup_file_extent(trans, root, path, ino, in run_delalloc_nocow()
1341 if (btrfs_cross_ref_exist(trans, root, ino, in run_delalloc_nocow()
1479 err = btrfs_end_transaction(trans, root); in run_delalloc_nocow()
1924 static noinline int add_pending_csums(struct btrfs_trans_handle *trans, in add_pending_csums() argument
1931 trans->adding_csums = 1; in add_pending_csums()
1932 btrfs_csum_file_blocks(trans, in add_pending_csums()
1934 trans->adding_csums = 0; in add_pending_csums()
2051 static int insert_reserved_file_extent(struct btrfs_trans_handle *trans, in insert_reserved_file_extent() argument
2079 ret = __btrfs_drop_extents(trans, root, inode, path, file_pos, in insert_reserved_file_extent()
2091 ret = btrfs_insert_empty_item(trans, root, path, &ins, in insert_reserved_file_extent()
2099 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in insert_reserved_file_extent()
2118 ret = btrfs_alloc_reserved_file_extent(trans, root, in insert_reserved_file_extent()
2402 struct btrfs_trans_handle *trans; in relink_extent_backref() local
2471 trans = btrfs_join_transaction(root); in relink_extent_backref()
2472 if (IS_ERR(trans)) { in relink_extent_backref()
2473 ret = PTR_ERR(trans); in relink_extent_backref()
2507 ret = btrfs_drop_extents(trans, root, inode, start, in relink_extent_backref()
2522 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in relink_extent_backref()
2550 ret = btrfs_insert_empty_item(trans, root, path, &key, in relink_extent_backref()
2553 btrfs_abort_transaction(trans, root, ret); in relink_extent_backref()
2565 btrfs_set_file_extent_generation(leaf, item, trans->transid); in relink_extent_backref()
2575 ret = btrfs_inc_extent_ref(trans, root, new->bytenr, in relink_extent_backref()
2580 btrfs_abort_transaction(trans, root, ret); in relink_extent_backref()
2588 btrfs_end_transaction(trans, root); in relink_extent_backref()
2798 struct btrfs_trans_handle *trans = NULL; in btrfs_finish_ordered_io() local
2831 trans = btrfs_join_transaction_nolock(root); in btrfs_finish_ordered_io()
2833 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
2834 if (IS_ERR(trans)) { in btrfs_finish_ordered_io()
2835 ret = PTR_ERR(trans); in btrfs_finish_ordered_io()
2836 trans = NULL; in btrfs_finish_ordered_io()
2839 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in btrfs_finish_ordered_io()
2840 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
2842 btrfs_abort_transaction(trans, root, ret); in btrfs_finish_ordered_io()
2865 trans = btrfs_join_transaction_nolock(root); in btrfs_finish_ordered_io()
2867 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
2868 if (IS_ERR(trans)) { in btrfs_finish_ordered_io()
2869 ret = PTR_ERR(trans); in btrfs_finish_ordered_io()
2870 trans = NULL; in btrfs_finish_ordered_io()
2874 trans->block_rsv = &root->fs_info->delalloc_block_rsv; in btrfs_finish_ordered_io()
2880 ret = btrfs_mark_extent_written(trans, inode, in btrfs_finish_ordered_io()
2886 ret = insert_reserved_file_extent(trans, inode, in btrfs_finish_ordered_io()
2900 trans->transid); in btrfs_finish_ordered_io()
2902 btrfs_abort_transaction(trans, root, ret); in btrfs_finish_ordered_io()
2906 add_pending_csums(trans, inode, ordered_extent->file_offset, in btrfs_finish_ordered_io()
2910 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
2912 btrfs_abort_transaction(trans, root, ret); in btrfs_finish_ordered_io()
2923 if (trans) in btrfs_finish_ordered_io()
2924 btrfs_end_transaction(trans, root); in btrfs_finish_ordered_io()
3130 void btrfs_orphan_commit_root(struct btrfs_trans_handle *trans, in btrfs_orphan_commit_root() argument
3157 ret = btrfs_del_orphan_item(trans, root->fs_info->tree_root, in btrfs_orphan_commit_root()
3160 btrfs_abort_transaction(trans, root, ret); in btrfs_orphan_commit_root()
3179 int btrfs_orphan_add(struct btrfs_trans_handle *trans, struct inode *inode) in btrfs_orphan_add() argument
3225 ret = btrfs_orphan_reserve_metadata(trans, inode); in btrfs_orphan_add()
3231 ret = btrfs_insert_orphan_item(trans, root, btrfs_ino(inode)); in btrfs_orphan_add()
3242 btrfs_abort_transaction(trans, root, ret); in btrfs_orphan_add()
3251 ret = btrfs_insert_orphan_item(trans, root->fs_info->tree_root, in btrfs_orphan_add()
3254 btrfs_abort_transaction(trans, root, ret); in btrfs_orphan_add()
3265 static int btrfs_orphan_del(struct btrfs_trans_handle *trans, in btrfs_orphan_del() argument
3285 if (trans) in btrfs_orphan_del()
3286 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_del()
3305 struct btrfs_trans_handle *trans; in btrfs_orphan_cleanup() local
3414 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3415 if (IS_ERR(trans)) { in btrfs_orphan_cleanup()
3416 ret = PTR_ERR(trans); in btrfs_orphan_cleanup()
3421 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_cleanup()
3423 btrfs_end_transaction(trans, root); in btrfs_orphan_cleanup()
3446 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3447 if (IS_ERR(trans)) { in btrfs_orphan_cleanup()
3449 ret = PTR_ERR(trans); in btrfs_orphan_cleanup()
3452 ret = btrfs_orphan_add(trans, inode); in btrfs_orphan_cleanup()
3453 btrfs_end_transaction(trans, root); in btrfs_orphan_cleanup()
3482 trans = btrfs_join_transaction(root); in btrfs_orphan_cleanup()
3483 if (!IS_ERR(trans)) in btrfs_orphan_cleanup()
3484 btrfs_end_transaction(trans, root); in btrfs_orphan_cleanup()
3731 static void fill_inode_item(struct btrfs_trans_handle *trans, in fill_inode_item() argument
3772 btrfs_set_token_inode_transid(leaf, item, trans->transid, &token); in fill_inode_item()
3781 static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans, in btrfs_update_inode_item() argument
3794 ret = btrfs_lookup_inode(trans, root, path, &BTRFS_I(inode)->location, in btrfs_update_inode_item()
3806 fill_inode_item(trans, leaf, inode_item, inode); in btrfs_update_inode_item()
3808 btrfs_set_inode_last_trans(trans, inode); in btrfs_update_inode_item()
3818 noinline int btrfs_update_inode(struct btrfs_trans_handle *trans, in btrfs_update_inode() argument
3833 btrfs_update_root_times(trans, root); in btrfs_update_inode()
3835 ret = btrfs_delayed_update_inode(trans, root, inode); in btrfs_update_inode()
3837 btrfs_set_inode_last_trans(trans, inode); in btrfs_update_inode()
3841 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode()
3844 noinline int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans, in btrfs_update_inode_fallback() argument
3850 ret = btrfs_update_inode(trans, root, inode); in btrfs_update_inode_fallback()
3852 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode_fallback()
3861 static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans, in __btrfs_unlink_inode() argument
3882 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in __btrfs_unlink_inode()
3894 ret = btrfs_delete_one_dir_name(trans, root, path, di); in __btrfs_unlink_inode()
3917 ret = btrfs_del_inode_ref(trans, root, name, name_len, ino, in __btrfs_unlink_inode()
3923 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
3927 ret = btrfs_delete_delayed_dir_index(trans, root, dir, index); in __btrfs_unlink_inode()
3929 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
3933 ret = btrfs_del_inode_ref_in_log(trans, root, name, name_len, in __btrfs_unlink_inode()
3936 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
3940 ret = btrfs_del_dir_entries_in_log(trans, root, name, name_len, in __btrfs_unlink_inode()
3945 btrfs_abort_transaction(trans, root, ret); in __btrfs_unlink_inode()
3955 ret = btrfs_update_inode(trans, root, dir); in __btrfs_unlink_inode()
3960 int btrfs_unlink_inode(struct btrfs_trans_handle *trans, in btrfs_unlink_inode() argument
3966 ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len); in btrfs_unlink_inode()
3969 ret = btrfs_update_inode(trans, root, inode); in btrfs_unlink_inode()
3984 struct btrfs_trans_handle *trans; in __unlink_start_trans() local
3995 trans = btrfs_start_transaction(root, 5); in __unlink_start_trans()
3996 if (!IS_ERR(trans) || PTR_ERR(trans) != -ENOSPC) in __unlink_start_trans()
3997 return trans; in __unlink_start_trans()
3999 if (PTR_ERR(trans) == -ENOSPC) { in __unlink_start_trans()
4002 trans = btrfs_start_transaction(root, 0); in __unlink_start_trans()
4003 if (IS_ERR(trans)) in __unlink_start_trans()
4004 return trans; in __unlink_start_trans()
4009 btrfs_end_transaction(trans, root); in __unlink_start_trans()
4012 trans->block_rsv = &root->fs_info->trans_block_rsv; in __unlink_start_trans()
4013 trans->bytes_reserved = num_bytes; in __unlink_start_trans()
4015 return trans; in __unlink_start_trans()
4021 struct btrfs_trans_handle *trans; in btrfs_unlink() local
4025 trans = __unlink_start_trans(dir); in btrfs_unlink()
4026 if (IS_ERR(trans)) in btrfs_unlink()
4027 return PTR_ERR(trans); in btrfs_unlink()
4029 btrfs_record_unlink_dir(trans, dir, d_inode(dentry), 0); in btrfs_unlink()
4031 ret = btrfs_unlink_inode(trans, root, dir, d_inode(dentry), in btrfs_unlink()
4037 ret = btrfs_orphan_add(trans, inode); in btrfs_unlink()
4043 btrfs_end_transaction(trans, root); in btrfs_unlink()
4048 int btrfs_unlink_subvol(struct btrfs_trans_handle *trans, in btrfs_unlink_subvol() argument
4065 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in btrfs_unlink_subvol()
4078 ret = btrfs_delete_one_dir_name(trans, root, path, di); in btrfs_unlink_subvol()
4080 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4085 ret = btrfs_del_root_ref(trans, root->fs_info->tree_root, in btrfs_unlink_subvol()
4090 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4100 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4111 ret = btrfs_delete_delayed_dir_index(trans, root, dir, index); in btrfs_unlink_subvol()
4113 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4120 ret = btrfs_update_inode_fallback(trans, root, dir); in btrfs_unlink_subvol()
4122 btrfs_abort_transaction(trans, root, ret); in btrfs_unlink_subvol()
4133 struct btrfs_trans_handle *trans; in btrfs_rmdir() local
4140 trans = __unlink_start_trans(dir); in btrfs_rmdir()
4141 if (IS_ERR(trans)) in btrfs_rmdir()
4142 return PTR_ERR(trans); in btrfs_rmdir()
4145 err = btrfs_unlink_subvol(trans, root, dir, in btrfs_rmdir()
4152 err = btrfs_orphan_add(trans, inode); in btrfs_rmdir()
4157 err = btrfs_unlink_inode(trans, root, dir, d_inode(dentry), in btrfs_rmdir()
4162 btrfs_end_transaction(trans, root); in btrfs_rmdir()
4168 static int truncate_space_check(struct btrfs_trans_handle *trans, in truncate_space_check() argument
4178 trans->bytes_reserved += bytes_deleted; in truncate_space_check()
4235 int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, in btrfs_truncate_inode_items() argument
4309 if (btrfs_should_end_transaction(trans, root)) { in btrfs_truncate_inode_items()
4317 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_truncate_inode_items()
4428 err = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
4432 btrfs_abort_transaction(trans, in btrfs_truncate_inode_items()
4445 btrfs_abort_transaction(trans, in btrfs_truncate_inode_items()
4478 ret = btrfs_free_extent(trans, root, extent_start, in btrfs_truncate_inode_items()
4483 if (btrfs_should_throttle_delayed_refs(trans, root)) in btrfs_truncate_inode_items()
4485 trans->delayed_ref_updates * 2, 0); in btrfs_truncate_inode_items()
4487 if (truncate_space_check(trans, root, in btrfs_truncate_inode_items()
4491 if (btrfs_should_throttle_delayed_refs(trans, in btrfs_truncate_inode_items()
4505 ret = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
4509 btrfs_abort_transaction(trans, in btrfs_truncate_inode_items()
4517 unsigned long updates = trans->delayed_ref_updates; in btrfs_truncate_inode_items()
4519 trans->delayed_ref_updates = 0; in btrfs_truncate_inode_items()
4520 ret = btrfs_run_delayed_refs(trans, root, updates * 2); in btrfs_truncate_inode_items()
4540 ret = btrfs_del_items(trans, root, path, pending_del_slot, in btrfs_truncate_inode_items()
4543 btrfs_abort_transaction(trans, root, ret); in btrfs_truncate_inode_items()
4553 unsigned long updates = trans->delayed_ref_updates; in btrfs_truncate_inode_items()
4555 trans->delayed_ref_updates = 0; in btrfs_truncate_inode_items()
4556 ret = btrfs_run_delayed_refs(trans, root, updates * 2); in btrfs_truncate_inode_items()
4681 struct btrfs_trans_handle *trans; in maybe_insert_hole() local
4700 trans = btrfs_start_transaction(root, 3); in maybe_insert_hole()
4701 if (IS_ERR(trans)) in maybe_insert_hole()
4702 return PTR_ERR(trans); in maybe_insert_hole()
4704 ret = btrfs_drop_extents(trans, root, inode, offset, offset + len, 1); in maybe_insert_hole()
4706 btrfs_abort_transaction(trans, root, ret); in maybe_insert_hole()
4707 btrfs_end_transaction(trans, root); in maybe_insert_hole()
4711 ret = btrfs_insert_file_extent(trans, root, btrfs_ino(inode), offset, in maybe_insert_hole()
4714 btrfs_abort_transaction(trans, root, ret); in maybe_insert_hole()
4716 btrfs_update_inode(trans, root, inode); in maybe_insert_hole()
4717 btrfs_end_transaction(trans, root); in maybe_insert_hole()
4855 struct btrfs_trans_handle *trans; in btrfs_setsize() local
4890 trans = btrfs_start_transaction(root, 1); in btrfs_setsize()
4891 if (IS_ERR(trans)) { in btrfs_setsize()
4893 return PTR_ERR(trans); in btrfs_setsize()
4898 ret = btrfs_update_inode(trans, root, inode); in btrfs_setsize()
4900 btrfs_end_transaction(trans, root); in btrfs_setsize()
4916 trans = btrfs_start_transaction(root, 2); in btrfs_setsize()
4917 if (IS_ERR(trans)) in btrfs_setsize()
4918 return PTR_ERR(trans); in btrfs_setsize()
4930 ret = btrfs_orphan_add(trans, inode); in btrfs_setsize()
4931 btrfs_end_transaction(trans, root); in btrfs_setsize()
4953 trans = btrfs_join_transaction(root); in btrfs_setsize()
4954 if (IS_ERR(trans)) { in btrfs_setsize()
4959 err = btrfs_orphan_del(trans, inode); in btrfs_setsize()
4961 btrfs_abort_transaction(trans, root, err); in btrfs_setsize()
4962 btrfs_end_transaction(trans, root); in btrfs_setsize()
5066 struct btrfs_trans_handle *trans; in btrfs_evict_inode() local
5160 trans = btrfs_join_transaction(root); in btrfs_evict_inode()
5161 if (IS_ERR(trans)) { in btrfs_evict_inode()
5173 if (!btrfs_check_space_for_delayed_refs(trans, root)) in btrfs_evict_inode()
5186 ret = btrfs_commit_transaction(trans, root); in btrfs_evict_inode()
5197 trans->block_rsv = rsv; in btrfs_evict_inode()
5199 ret = btrfs_truncate_inode_items(trans, root, inode, 0, 0); in btrfs_evict_inode()
5203 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_evict_inode()
5204 btrfs_end_transaction(trans, root); in btrfs_evict_inode()
5205 trans = NULL; in btrfs_evict_inode()
5216 trans->block_rsv = root->orphan_block_rsv; in btrfs_evict_inode()
5217 btrfs_orphan_del(trans, inode); in btrfs_evict_inode()
5222 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_evict_inode()
5227 btrfs_end_transaction(trans, root); in btrfs_evict_inode()
5843 struct btrfs_trans_handle *trans; in btrfs_write_inode() local
5855 trans = btrfs_join_transaction_nolock(root); in btrfs_write_inode()
5857 trans = btrfs_join_transaction(root); in btrfs_write_inode()
5858 if (IS_ERR(trans)) in btrfs_write_inode()
5859 return PTR_ERR(trans); in btrfs_write_inode()
5860 ret = btrfs_commit_transaction(trans, root); in btrfs_write_inode()
5874 struct btrfs_trans_handle *trans; in btrfs_dirty_inode() local
5880 trans = btrfs_join_transaction(root); in btrfs_dirty_inode()
5881 if (IS_ERR(trans)) in btrfs_dirty_inode()
5882 return PTR_ERR(trans); in btrfs_dirty_inode()
5884 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
5887 btrfs_end_transaction(trans, root); in btrfs_dirty_inode()
5888 trans = btrfs_start_transaction(root, 1); in btrfs_dirty_inode()
5889 if (IS_ERR(trans)) in btrfs_dirty_inode()
5890 return PTR_ERR(trans); in btrfs_dirty_inode()
5892 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
5894 btrfs_end_transaction(trans, root); in btrfs_dirty_inode()
6015 static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, in btrfs_new_inode() argument
6076 BTRFS_I(inode)->generation = trans->transid; in btrfs_new_inode()
6117 ret = btrfs_insert_empty_items(trans, root, path, key, sizes, nitems); in btrfs_new_inode()
6133 fill_inode_item(trans, path->nodes[0], inode_item, inode); in btrfs_new_inode()
6160 btrfs_set_inode_last_trans(trans, inode); in btrfs_new_inode()
6162 btrfs_update_root_times(trans, root); in btrfs_new_inode()
6164 ret = btrfs_inode_inherit_props(trans, inode, dir); in btrfs_new_inode()
6193 int btrfs_add_link(struct btrfs_trans_handle *trans, in btrfs_add_link() argument
6212 ret = btrfs_add_root_ref(trans, root->fs_info->tree_root, in btrfs_add_link()
6216 ret = btrfs_insert_inode_ref(trans, root, name, name_len, ino, in btrfs_add_link()
6224 ret = btrfs_insert_dir_item(trans, root, name, name_len, in btrfs_add_link()
6230 btrfs_abort_transaction(trans, root, ret); in btrfs_add_link()
6238 ret = btrfs_update_inode(trans, root, parent_inode); in btrfs_add_link()
6240 btrfs_abort_transaction(trans, root, ret); in btrfs_add_link()
6247 err = btrfs_del_root_ref(trans, root->fs_info->tree_root, in btrfs_add_link()
6255 err = btrfs_del_inode_ref(trans, root, name, name_len, in btrfs_add_link()
6261 static int btrfs_add_nondir(struct btrfs_trans_handle *trans, in btrfs_add_nondir() argument
6265 int err = btrfs_add_link(trans, dir, inode, in btrfs_add_nondir()
6276 struct btrfs_trans_handle *trans; in btrfs_mknod() local
6292 trans = btrfs_start_transaction(root, 5); in btrfs_mknod()
6293 if (IS_ERR(trans)) in btrfs_mknod()
6294 return PTR_ERR(trans); in btrfs_mknod()
6300 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mknod()
6317 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_mknod()
6321 err = btrfs_add_nondir(trans, dir, dentry, inode, 0, index); in btrfs_mknod()
6325 btrfs_update_inode(trans, root, inode); in btrfs_mknod()
6331 btrfs_end_transaction(trans, root); in btrfs_mknod()
6350 struct btrfs_trans_handle *trans; in btrfs_create() local
6363 trans = btrfs_start_transaction(root, 5); in btrfs_create()
6364 if (IS_ERR(trans)) in btrfs_create()
6365 return PTR_ERR(trans); in btrfs_create()
6371 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_create()
6389 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_create()
6393 err = btrfs_update_inode(trans, root, inode); in btrfs_create()
6397 err = btrfs_add_nondir(trans, dir, dentry, inode, 0, index); in btrfs_create()
6406 btrfs_end_transaction(trans, root); in btrfs_create()
6424 struct btrfs_trans_handle *trans = NULL; in btrfs_link() local
6447 trans = btrfs_start_transaction(root, 5); in btrfs_link()
6448 if (IS_ERR(trans)) { in btrfs_link()
6449 err = PTR_ERR(trans); in btrfs_link()
6450 trans = NULL; in btrfs_link()
6462 err = btrfs_add_nondir(trans, dir, dentry, inode, 1, index); in btrfs_link()
6468 err = btrfs_update_inode(trans, root, inode); in btrfs_link()
6476 err = btrfs_orphan_del(trans, inode); in btrfs_link()
6481 btrfs_log_new_name(trans, inode, NULL, parent); in btrfs_link()
6486 if (trans) in btrfs_link()
6487 btrfs_end_transaction(trans, root); in btrfs_link()
6499 struct btrfs_trans_handle *trans; in btrfs_mkdir() local
6511 trans = btrfs_start_transaction(root, 5); in btrfs_mkdir()
6512 if (IS_ERR(trans)) in btrfs_mkdir()
6513 return PTR_ERR(trans); in btrfs_mkdir()
6519 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mkdir()
6532 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_mkdir()
6537 err = btrfs_update_inode(trans, root, inode); in btrfs_mkdir()
6541 err = btrfs_add_link(trans, dir, inode, dentry->d_name.name, in btrfs_mkdir()
6555 btrfs_end_transaction(trans, root); in btrfs_mkdir()
6690 struct btrfs_trans_handle *trans = NULL; in btrfs_get_extent() local
6732 ret = btrfs_lookup_file_extent(trans, root, path, in btrfs_get_extent()
6733 objectid, start, trans != NULL); in btrfs_get_extent()
6849 if (!trans) { in btrfs_get_extent()
6855 trans = btrfs_join_transaction(root); in btrfs_get_extent()
6857 if (IS_ERR(trans)) in btrfs_get_extent()
6858 return ERR_CAST(trans); in btrfs_get_extent()
6930 if (trans) { in btrfs_get_extent()
6931 ret = btrfs_end_transaction(trans, root); in btrfs_get_extent()
7111 struct btrfs_trans_handle *trans; in can_nocow_extent() local
7213 trans = btrfs_join_transaction(root); in can_nocow_extent()
7214 if (IS_ERR(trans)) { in can_nocow_extent()
7219 ret = btrfs_cross_ref_exist(trans, root, btrfs_ino(inode), in can_nocow_extent()
7221 btrfs_end_transaction(trans, root); in can_nocow_extent()
8716 struct btrfs_trans_handle *trans; in btrfs_truncate() local
8771 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
8772 if (IS_ERR(trans)) { in btrfs_truncate()
8773 err = PTR_ERR(trans); in btrfs_truncate()
8790 trans->block_rsv = rsv; in btrfs_truncate()
8793 ret = btrfs_truncate_inode_items(trans, root, inode, in btrfs_truncate()
8801 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_truncate()
8802 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
8808 btrfs_end_transaction(trans, root); in btrfs_truncate()
8811 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
8812 if (IS_ERR(trans)) { in btrfs_truncate()
8813 ret = err = PTR_ERR(trans); in btrfs_truncate()
8814 trans = NULL; in btrfs_truncate()
8821 trans->block_rsv = rsv; in btrfs_truncate()
8825 trans->block_rsv = root->orphan_block_rsv; in btrfs_truncate()
8826 ret = btrfs_orphan_del(trans, inode); in btrfs_truncate()
8831 if (trans) { in btrfs_truncate()
8832 trans->block_rsv = &root->fs_info->trans_block_rsv; in btrfs_truncate()
8833 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
8837 ret = btrfs_end_transaction(trans, root); in btrfs_truncate()
8853 int btrfs_create_subvol_root(struct btrfs_trans_handle *trans, in btrfs_create_subvol_root() argument
8862 inode = btrfs_new_inode(trans, new_root, NULL, "..", 2, in btrfs_create_subvol_root()
8875 err = btrfs_subvol_inherit_props(trans, new_root, parent_root); in btrfs_create_subvol_root()
8881 err = btrfs_update_inode(trans, new_root, inode); in btrfs_create_subvol_root()
9110 struct btrfs_trans_handle *trans; in btrfs_rename() local
9174 trans = btrfs_start_transaction(root, 11); in btrfs_rename()
9175 if (IS_ERR(trans)) { in btrfs_rename()
9176 ret = PTR_ERR(trans); in btrfs_rename()
9181 btrfs_record_root_in_trans(trans, dest); in btrfs_rename()
9190 btrfs_set_log_full_commit(root->fs_info, trans); in btrfs_rename()
9192 ret = btrfs_insert_inode_ref(trans, dest, in btrfs_rename()
9217 btrfs_record_unlink_dir(trans, old_dir, old_inode, 1); in btrfs_rename()
9221 ret = btrfs_unlink_subvol(trans, root, old_dir, root_objectid, in btrfs_rename()
9225 ret = __btrfs_unlink_inode(trans, root, old_dir, in btrfs_rename()
9230 ret = btrfs_update_inode(trans, root, old_inode); in btrfs_rename()
9233 btrfs_abort_transaction(trans, root, ret); in btrfs_rename()
9243 ret = btrfs_unlink_subvol(trans, dest, new_dir, in btrfs_rename()
9249 ret = btrfs_unlink_inode(trans, dest, new_dir, in btrfs_rename()
9255 ret = btrfs_orphan_add(trans, d_inode(new_dentry)); in btrfs_rename()
9257 btrfs_abort_transaction(trans, root, ret); in btrfs_rename()
9262 ret = btrfs_add_link(trans, new_dir, old_inode, in btrfs_rename()
9266 btrfs_abort_transaction(trans, root, ret); in btrfs_rename()
9275 btrfs_log_new_name(trans, old_inode, old_dir, parent); in btrfs_rename()
9279 btrfs_end_transaction(trans, root); in btrfs_rename()
9501 struct btrfs_trans_handle *trans; in btrfs_symlink() local
9527 trans = btrfs_start_transaction(root, 7); in btrfs_symlink()
9528 if (IS_ERR(trans)) in btrfs_symlink()
9529 return PTR_ERR(trans); in btrfs_symlink()
9535 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_symlink()
9554 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_symlink()
9558 err = btrfs_add_nondir(trans, dir, dentry, inode, 0, index); in btrfs_symlink()
9571 err = btrfs_insert_empty_item(trans, root, path, &key, in btrfs_symlink()
9580 btrfs_set_file_extent_generation(leaf, ei, trans->transid); in btrfs_symlink()
9597 err = btrfs_update_inode(trans, root, inode); in btrfs_symlink()
9607 btrfs_end_transaction(trans, root); in btrfs_symlink()
9624 struct btrfs_trans_handle *trans) in __btrfs_prealloc_file_range() argument
9636 if (trans) in __btrfs_prealloc_file_range()
9640 trans = btrfs_start_transaction(root, 3); in __btrfs_prealloc_file_range()
9641 if (IS_ERR(trans)) { in __btrfs_prealloc_file_range()
9642 ret = PTR_ERR(trans); in __btrfs_prealloc_file_range()
9653 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9657 ret = insert_reserved_file_extent(trans, inode, in __btrfs_prealloc_file_range()
9665 btrfs_abort_transaction(trans, root, ret); in __btrfs_prealloc_file_range()
9667 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9690 em->generation = trans->transid; in __btrfs_prealloc_file_range()
9722 ret = btrfs_update_inode(trans, root, inode); in __btrfs_prealloc_file_range()
9725 btrfs_abort_transaction(trans, root, ret); in __btrfs_prealloc_file_range()
9727 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9732 btrfs_end_transaction(trans, root); in __btrfs_prealloc_file_range()
9747 struct btrfs_trans_handle *trans, int mode, in btrfs_prealloc_file_range_trans() argument
9752 min_size, actual_len, alloc_hint, trans); in btrfs_prealloc_file_range_trans()
9777 struct btrfs_trans_handle *trans; in btrfs_tmpfile() local
9787 trans = btrfs_start_transaction(root, 5); in btrfs_tmpfile()
9788 if (IS_ERR(trans)) in btrfs_tmpfile()
9789 return PTR_ERR(trans); in btrfs_tmpfile()
9795 inode = btrfs_new_inode(trans, root, dir, NULL, 0, in btrfs_tmpfile()
9809 ret = btrfs_init_inode_security(trans, inode, dir, NULL); in btrfs_tmpfile()
9813 ret = btrfs_update_inode(trans, root, inode); in btrfs_tmpfile()
9816 ret = btrfs_orphan_add(trans, inode); in btrfs_tmpfile()
9833 btrfs_end_transaction(trans, root); in btrfs_tmpfile()