Lines Matching refs:trans
150 static int btrfs_init_inode_security(struct btrfs_trans_handle *trans, in btrfs_init_inode_security() argument
156 err = btrfs_init_acl(trans, inode, dir); in btrfs_init_inode_security()
158 err = btrfs_xattr_security_init(trans, inode, dir, qstr); in btrfs_init_inode_security()
167 static int insert_inline_extent(struct btrfs_trans_handle *trans, in insert_inline_extent() argument
201 ret = btrfs_insert_empty_item(trans, root, path, &key, in insert_inline_extent()
209 btrfs_set_file_extent_generation(leaf, ei, trans->transid); in insert_inline_extent()
257 ret = btrfs_update_inode(trans, root, inode); in insert_inline_extent()
276 struct btrfs_trans_handle *trans; in cow_file_range_inline() local
304 trans = btrfs_join_transaction(root); in cow_file_range_inline()
305 if (IS_ERR(trans)) { in cow_file_range_inline()
307 return PTR_ERR(trans); in cow_file_range_inline()
309 trans->block_rsv = &BTRFS_I(inode)->block_rsv; in cow_file_range_inline()
318 ret = __btrfs_drop_extents(trans, root, inode, path, in cow_file_range_inline()
322 btrfs_abort_transaction(trans, ret); in cow_file_range_inline()
328 ret = insert_inline_extent(trans, path, extent_inserted, in cow_file_range_inline()
333 btrfs_abort_transaction(trans, ret); in cow_file_range_inline()
351 btrfs_end_transaction(trans); in cow_file_range_inline()
2226 static noinline int add_pending_csums(struct btrfs_trans_handle *trans, in add_pending_csums() argument
2233 trans->adding_csums = true; in add_pending_csums()
2234 ret = btrfs_csum_file_blocks(trans, in add_pending_csums()
2236 trans->adding_csums = false; in add_pending_csums()
2443 static int insert_reserved_file_extent(struct btrfs_trans_handle *trans, in insert_reserved_file_extent() argument
2472 ret = __btrfs_drop_extents(trans, root, inode, path, file_pos, in insert_reserved_file_extent()
2484 ret = btrfs_insert_empty_item(trans, root, path, &ins, in insert_reserved_file_extent()
2492 btrfs_set_file_extent_generation(leaf, fi, trans->transid); in insert_reserved_file_extent()
2520 ret = btrfs_alloc_reserved_file_extent(trans, root, in insert_reserved_file_extent()
2803 struct btrfs_trans_handle *trans; in relink_extent_backref() local
2871 trans = btrfs_join_transaction(root); in relink_extent_backref()
2872 if (IS_ERR(trans)) { in relink_extent_backref()
2873 ret = PTR_ERR(trans); in relink_extent_backref()
2907 ret = btrfs_drop_extents(trans, root, inode, start, in relink_extent_backref()
2922 ret = btrfs_search_slot(trans, root, &key, path, 0, 1); in relink_extent_backref()
2950 ret = btrfs_insert_empty_item(trans, root, path, &key, in relink_extent_backref()
2953 btrfs_abort_transaction(trans, ret); in relink_extent_backref()
2965 btrfs_set_file_extent_generation(leaf, item, trans->transid); in relink_extent_backref()
2979 ret = btrfs_inc_extent_ref(trans, &ref); in relink_extent_backref()
2981 btrfs_abort_transaction(trans, ret); in relink_extent_backref()
2989 btrfs_end_transaction(trans); in relink_extent_backref()
3196 struct btrfs_trans_handle *trans = NULL; in btrfs_finish_ordered_io() local
3246 trans = btrfs_join_transaction_nolock(root); in btrfs_finish_ordered_io()
3248 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
3249 if (IS_ERR(trans)) { in btrfs_finish_ordered_io()
3250 ret = PTR_ERR(trans); in btrfs_finish_ordered_io()
3251 trans = NULL; in btrfs_finish_ordered_io()
3254 trans->block_rsv = &BTRFS_I(inode)->block_rsv; in btrfs_finish_ordered_io()
3255 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
3257 btrfs_abort_transaction(trans, ret); in btrfs_finish_ordered_io()
3281 trans = btrfs_join_transaction_nolock(root); in btrfs_finish_ordered_io()
3283 trans = btrfs_join_transaction(root); in btrfs_finish_ordered_io()
3284 if (IS_ERR(trans)) { in btrfs_finish_ordered_io()
3285 ret = PTR_ERR(trans); in btrfs_finish_ordered_io()
3286 trans = NULL; in btrfs_finish_ordered_io()
3290 trans->block_rsv = &BTRFS_I(inode)->block_rsv; in btrfs_finish_ordered_io()
3298 ret = btrfs_mark_extent_written(trans, BTRFS_I(inode), in btrfs_finish_ordered_io()
3304 ret = insert_reserved_file_extent(trans, inode, in btrfs_finish_ordered_io()
3320 trans->transid); in btrfs_finish_ordered_io()
3322 btrfs_abort_transaction(trans, ret); in btrfs_finish_ordered_io()
3326 ret = add_pending_csums(trans, inode, &ordered_extent->list); in btrfs_finish_ordered_io()
3328 btrfs_abort_transaction(trans, ret); in btrfs_finish_ordered_io()
3333 ret = btrfs_update_inode_fallback(trans, root, inode); in btrfs_finish_ordered_io()
3335 btrfs_abort_transaction(trans, ret); in btrfs_finish_ordered_io()
3356 if (trans) in btrfs_finish_ordered_io()
3357 btrfs_end_transaction(trans); in btrfs_finish_ordered_io()
3614 int btrfs_orphan_add(struct btrfs_trans_handle *trans, in btrfs_orphan_add() argument
3619 ret = btrfs_insert_orphan_item(trans, inode->root, btrfs_ino(inode)); in btrfs_orphan_add()
3621 btrfs_abort_transaction(trans, ret); in btrfs_orphan_add()
3632 static int btrfs_orphan_del(struct btrfs_trans_handle *trans, in btrfs_orphan_del() argument
3635 return btrfs_del_orphan_item(trans, inode->root, btrfs_ino(inode)); in btrfs_orphan_del()
3648 struct btrfs_trans_handle *trans; in btrfs_orphan_cleanup() local
3776 trans = btrfs_start_transaction(root, 1); in btrfs_orphan_cleanup()
3777 if (IS_ERR(trans)) { in btrfs_orphan_cleanup()
3778 ret = PTR_ERR(trans); in btrfs_orphan_cleanup()
3783 ret = btrfs_del_orphan_item(trans, root, in btrfs_orphan_cleanup()
3785 btrfs_end_transaction(trans); in btrfs_orphan_cleanup()
3802 trans = btrfs_join_transaction(root); in btrfs_orphan_cleanup()
3803 if (!IS_ERR(trans)) in btrfs_orphan_cleanup()
3804 btrfs_end_transaction(trans); in btrfs_orphan_cleanup()
4080 static void fill_inode_item(struct btrfs_trans_handle *trans, in fill_inode_item() argument
4122 btrfs_set_token_inode_transid(leaf, item, trans->transid, &token); in fill_inode_item()
4131 static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans, in btrfs_update_inode_item() argument
4144 ret = btrfs_lookup_inode(trans, root, path, &BTRFS_I(inode)->location, in btrfs_update_inode_item()
4156 fill_inode_item(trans, leaf, inode_item, inode); in btrfs_update_inode_item()
4158 btrfs_set_inode_last_trans(trans, inode); in btrfs_update_inode_item()
4168 noinline int btrfs_update_inode(struct btrfs_trans_handle *trans, in btrfs_update_inode() argument
4184 btrfs_update_root_times(trans, root); in btrfs_update_inode()
4186 ret = btrfs_delayed_update_inode(trans, root, inode); in btrfs_update_inode()
4188 btrfs_set_inode_last_trans(trans, inode); in btrfs_update_inode()
4192 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode()
4195 noinline int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans, in btrfs_update_inode_fallback() argument
4201 ret = btrfs_update_inode(trans, root, inode); in btrfs_update_inode_fallback()
4203 return btrfs_update_inode_item(trans, root, inode); in btrfs_update_inode_fallback()
4212 static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans, in __btrfs_unlink_inode() argument
4233 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in __btrfs_unlink_inode()
4239 ret = btrfs_delete_one_dir_name(trans, root, path, di); in __btrfs_unlink_inode()
4262 ret = btrfs_del_inode_ref(trans, root, name, name_len, ino, in __btrfs_unlink_inode()
4268 btrfs_abort_transaction(trans, ret); in __btrfs_unlink_inode()
4272 ret = btrfs_delete_delayed_dir_index(trans, dir, index); in __btrfs_unlink_inode()
4274 btrfs_abort_transaction(trans, ret); in __btrfs_unlink_inode()
4278 ret = btrfs_del_inode_ref_in_log(trans, root, name, name_len, inode, in __btrfs_unlink_inode()
4281 btrfs_abort_transaction(trans, ret); in __btrfs_unlink_inode()
4285 ret = btrfs_del_dir_entries_in_log(trans, root, name, name_len, dir, in __btrfs_unlink_inode()
4290 btrfs_abort_transaction(trans, ret); in __btrfs_unlink_inode()
4312 ret = btrfs_update_inode(trans, root, &dir->vfs_inode); in __btrfs_unlink_inode()
4317 int btrfs_unlink_inode(struct btrfs_trans_handle *trans, in btrfs_unlink_inode() argument
4323 ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len); in btrfs_unlink_inode()
4326 ret = btrfs_update_inode(trans, root, &inode->vfs_inode); in btrfs_unlink_inode()
4356 struct btrfs_trans_handle *trans; in btrfs_unlink() local
4360 trans = __unlink_start_trans(dir); in btrfs_unlink()
4361 if (IS_ERR(trans)) in btrfs_unlink()
4362 return PTR_ERR(trans); in btrfs_unlink()
4364 btrfs_record_unlink_dir(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)), in btrfs_unlink()
4367 ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir), in btrfs_unlink()
4374 ret = btrfs_orphan_add(trans, BTRFS_I(inode)); in btrfs_unlink()
4380 btrfs_end_transaction(trans); in btrfs_unlink()
4385 static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans, in btrfs_unlink_subvol() argument
4414 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, in btrfs_unlink_subvol()
4424 ret = btrfs_delete_one_dir_name(trans, root, path, di); in btrfs_unlink_subvol()
4426 btrfs_abort_transaction(trans, ret); in btrfs_unlink_subvol()
4448 btrfs_abort_transaction(trans, ret); in btrfs_unlink_subvol()
4457 ret = btrfs_del_root_ref(trans, objectid, in btrfs_unlink_subvol()
4461 btrfs_abort_transaction(trans, ret); in btrfs_unlink_subvol()
4466 ret = btrfs_delete_delayed_dir_index(trans, BTRFS_I(dir), index); in btrfs_unlink_subvol()
4468 btrfs_abort_transaction(trans, ret); in btrfs_unlink_subvol()
4475 ret = btrfs_update_inode_fallback(trans, root, dir); in btrfs_unlink_subvol()
4477 btrfs_abort_transaction(trans, ret); in btrfs_unlink_subvol()
4608 struct btrfs_trans_handle *trans; in btrfs_delete_subvolume() local
4648 trans = btrfs_start_transaction(root, 0); in btrfs_delete_subvolume()
4649 if (IS_ERR(trans)) { in btrfs_delete_subvolume()
4650 err = PTR_ERR(trans); in btrfs_delete_subvolume()
4653 trans->block_rsv = &block_rsv; in btrfs_delete_subvolume()
4654 trans->bytes_reserved = block_rsv.size; in btrfs_delete_subvolume()
4656 btrfs_record_snapshot_destroy(trans, BTRFS_I(dir)); in btrfs_delete_subvolume()
4658 ret = btrfs_unlink_subvol(trans, dir, dentry); in btrfs_delete_subvolume()
4661 btrfs_abort_transaction(trans, ret); in btrfs_delete_subvolume()
4665 btrfs_record_root_in_trans(trans, dest); in btrfs_delete_subvolume()
4673 ret = btrfs_insert_orphan_item(trans, in btrfs_delete_subvolume()
4677 btrfs_abort_transaction(trans, ret); in btrfs_delete_subvolume()
4683 ret = btrfs_uuid_tree_remove(trans, dest->root_item.uuid, in btrfs_delete_subvolume()
4687 btrfs_abort_transaction(trans, ret); in btrfs_delete_subvolume()
4692 ret = btrfs_uuid_tree_remove(trans, in btrfs_delete_subvolume()
4697 btrfs_abort_transaction(trans, ret); in btrfs_delete_subvolume()
4706 trans->block_rsv = NULL; in btrfs_delete_subvolume()
4707 trans->bytes_reserved = 0; in btrfs_delete_subvolume()
4708 ret = btrfs_end_transaction(trans); in btrfs_delete_subvolume()
4742 struct btrfs_trans_handle *trans; in btrfs_rmdir() local
4750 trans = __unlink_start_trans(dir); in btrfs_rmdir()
4751 if (IS_ERR(trans)) in btrfs_rmdir()
4752 return PTR_ERR(trans); in btrfs_rmdir()
4755 err = btrfs_unlink_subvol(trans, dir, dentry); in btrfs_rmdir()
4759 err = btrfs_orphan_add(trans, BTRFS_I(inode)); in btrfs_rmdir()
4766 err = btrfs_unlink_inode(trans, root, BTRFS_I(dir), in btrfs_rmdir()
4782 if (last_unlink_trans >= trans->transid) in btrfs_rmdir()
4786 btrfs_end_transaction(trans); in btrfs_rmdir()
4809 int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans, in btrfs_truncate_inode_items() argument
4889 btrfs_should_end_transaction(trans)) { in btrfs_truncate_inode_items()
4894 ret = btrfs_search_slot(trans, root, &key, path, -1, 1); in btrfs_truncate_inode_items()
5052 ret = btrfs_free_extent(trans, &ref); in btrfs_truncate_inode_items()
5054 btrfs_abort_transaction(trans, ret); in btrfs_truncate_inode_items()
5058 if (btrfs_should_throttle_delayed_refs(trans)) in btrfs_truncate_inode_items()
5070 ret = btrfs_del_items(trans, root, path, in btrfs_truncate_inode_items()
5074 btrfs_abort_transaction(trans, ret); in btrfs_truncate_inode_items()
5108 err = btrfs_del_items(trans, root, path, pending_del_slot, in btrfs_truncate_inode_items()
5111 btrfs_abort_transaction(trans, err); in btrfs_truncate_inode_items()
5284 struct btrfs_trans_handle *trans; in maybe_insert_hole() local
5303 trans = btrfs_start_transaction(root, 3); in maybe_insert_hole()
5304 if (IS_ERR(trans)) in maybe_insert_hole()
5305 return PTR_ERR(trans); in maybe_insert_hole()
5307 ret = btrfs_drop_extents(trans, root, inode, offset, offset + len, 1); in maybe_insert_hole()
5309 btrfs_abort_transaction(trans, ret); in maybe_insert_hole()
5310 btrfs_end_transaction(trans); in maybe_insert_hole()
5314 ret = btrfs_insert_file_extent(trans, root, btrfs_ino(BTRFS_I(inode)), in maybe_insert_hole()
5317 btrfs_abort_transaction(trans, ret); in maybe_insert_hole()
5319 btrfs_update_inode(trans, root, inode); in maybe_insert_hole()
5320 btrfs_end_transaction(trans); in maybe_insert_hole()
5426 struct btrfs_trans_handle *trans; in btrfs_setsize() local
5460 trans = btrfs_start_transaction(root, 1); in btrfs_setsize()
5461 if (IS_ERR(trans)) { in btrfs_setsize()
5463 return PTR_ERR(trans); in btrfs_setsize()
5469 ret = btrfs_update_inode(trans, root, inode); in btrfs_setsize()
5471 btrfs_end_transaction(trans); in btrfs_setsize()
5640 struct btrfs_trans_handle *trans; in evict_refill_and_join() local
5673 trans = btrfs_join_transaction(root); in evict_refill_and_join()
5674 if (IS_ERR(trans)) in evict_refill_and_join()
5675 return trans; in evict_refill_and_join()
5678 trans->block_rsv = &fs_info->trans_block_rsv; in evict_refill_and_join()
5679 trans->bytes_reserved = delayed_refs_extra; in evict_refill_and_join()
5680 btrfs_block_rsv_migrate(rsv, trans->block_rsv, in evict_refill_and_join()
5683 return trans; in evict_refill_and_join()
5689 struct btrfs_trans_handle *trans; in btrfs_evict_inode() local
5736 trans = evict_refill_and_join(root, rsv); in btrfs_evict_inode()
5737 if (IS_ERR(trans)) in btrfs_evict_inode()
5740 trans->block_rsv = rsv; in btrfs_evict_inode()
5742 ret = btrfs_truncate_inode_items(trans, root, inode, 0, 0); in btrfs_evict_inode()
5743 trans->block_rsv = &fs_info->trans_block_rsv; in btrfs_evict_inode()
5744 btrfs_end_transaction(trans); in btrfs_evict_inode()
5761 trans = evict_refill_and_join(root, rsv); in btrfs_evict_inode()
5762 if (!IS_ERR(trans)) { in btrfs_evict_inode()
5763 trans->block_rsv = rsv; in btrfs_evict_inode()
5764 btrfs_orphan_del(trans, BTRFS_I(inode)); in btrfs_evict_inode()
5765 trans->block_rsv = &fs_info->trans_block_rsv; in btrfs_evict_inode()
5766 btrfs_end_transaction(trans); in btrfs_evict_inode()
6367 struct btrfs_trans_handle *trans; in btrfs_dirty_inode() local
6373 trans = btrfs_join_transaction(root); in btrfs_dirty_inode()
6374 if (IS_ERR(trans)) in btrfs_dirty_inode()
6375 return PTR_ERR(trans); in btrfs_dirty_inode()
6377 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
6380 btrfs_end_transaction(trans); in btrfs_dirty_inode()
6381 trans = btrfs_start_transaction(root, 1); in btrfs_dirty_inode()
6382 if (IS_ERR(trans)) in btrfs_dirty_inode()
6383 return PTR_ERR(trans); in btrfs_dirty_inode()
6385 ret = btrfs_update_inode(trans, root, inode); in btrfs_dirty_inode()
6387 btrfs_end_transaction(trans); in btrfs_dirty_inode()
6540 static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans, in btrfs_new_inode() argument
6605 BTRFS_I(inode)->generation = trans->transid; in btrfs_new_inode()
6648 ret = btrfs_insert_empty_items(trans, root, path, key, sizes, nitems); in btrfs_new_inode()
6664 fill_inode_item(trans, path->nodes[0], inode_item, inode); in btrfs_new_inode()
6691 btrfs_set_inode_last_trans(trans, inode); in btrfs_new_inode()
6693 btrfs_update_root_times(trans, root); in btrfs_new_inode()
6695 ret = btrfs_inode_inherit_props(trans, inode, dir); in btrfs_new_inode()
6718 int btrfs_add_link(struct btrfs_trans_handle *trans, in btrfs_add_link() argument
6737 ret = btrfs_add_root_ref(trans, key.objectid, in btrfs_add_link()
6741 ret = btrfs_insert_inode_ref(trans, root, name, name_len, ino, in btrfs_add_link()
6749 ret = btrfs_insert_dir_item(trans, name, name_len, parent_inode, &key, in btrfs_add_link()
6754 btrfs_abort_transaction(trans, ret); in btrfs_add_link()
6773 ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode); in btrfs_add_link()
6775 btrfs_abort_transaction(trans, ret); in btrfs_add_link()
6782 err = btrfs_del_root_ref(trans, key.objectid, in btrfs_add_link()
6786 btrfs_abort_transaction(trans, err); in btrfs_add_link()
6791 err = btrfs_del_inode_ref(trans, root, name, name_len, in btrfs_add_link()
6794 btrfs_abort_transaction(trans, err); in btrfs_add_link()
6801 static int btrfs_add_nondir(struct btrfs_trans_handle *trans, in btrfs_add_nondir() argument
6805 int err = btrfs_add_link(trans, dir, inode, in btrfs_add_nondir()
6817 struct btrfs_trans_handle *trans; in btrfs_mknod() local
6829 trans = btrfs_start_transaction(root, 5); in btrfs_mknod()
6830 if (IS_ERR(trans)) in btrfs_mknod()
6831 return PTR_ERR(trans); in btrfs_mknod()
6837 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mknod()
6855 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_mknod()
6859 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode), in btrfs_mknod()
6864 btrfs_update_inode(trans, root, inode); in btrfs_mknod()
6868 btrfs_end_transaction(trans); in btrfs_mknod()
6881 struct btrfs_trans_handle *trans; in btrfs_create() local
6893 trans = btrfs_start_transaction(root, 5); in btrfs_create()
6894 if (IS_ERR(trans)) in btrfs_create()
6895 return PTR_ERR(trans); in btrfs_create()
6901 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_create()
6919 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_create()
6923 err = btrfs_update_inode(trans, root, inode); in btrfs_create()
6927 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode), in btrfs_create()
6936 btrfs_end_transaction(trans); in btrfs_create()
6948 struct btrfs_trans_handle *trans = NULL; in btrfs_link() local
6973 trans = btrfs_start_transaction(root, inode->i_nlink ? 5 : 6); in btrfs_link()
6974 if (IS_ERR(trans)) { in btrfs_link()
6975 err = PTR_ERR(trans); in btrfs_link()
6976 trans = NULL; in btrfs_link()
6988 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode), in btrfs_link()
6996 err = btrfs_update_inode(trans, root, inode); in btrfs_link()
7004 err = btrfs_orphan_del(trans, BTRFS_I(inode)); in btrfs_link()
7009 btrfs_log_new_name(trans, BTRFS_I(inode), NULL, parent); in btrfs_link()
7013 if (trans) in btrfs_link()
7014 btrfs_end_transaction(trans); in btrfs_link()
7027 struct btrfs_trans_handle *trans; in btrfs_mkdir() local
7038 trans = btrfs_start_transaction(root, 5); in btrfs_mkdir()
7039 if (IS_ERR(trans)) in btrfs_mkdir()
7040 return PTR_ERR(trans); in btrfs_mkdir()
7046 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_mkdir()
7059 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_mkdir()
7064 err = btrfs_update_inode(trans, root, inode); in btrfs_mkdir()
7068 err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode), in btrfs_mkdir()
7077 btrfs_end_transaction(trans); in btrfs_mkdir()
9282 struct btrfs_trans_handle *trans; in btrfs_truncate() local
9331 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
9332 if (IS_ERR(trans)) { in btrfs_truncate()
9333 ret = PTR_ERR(trans); in btrfs_truncate()
9350 trans->block_rsv = rsv; in btrfs_truncate()
9353 ret = btrfs_truncate_inode_items(trans, root, inode, in btrfs_truncate()
9356 trans->block_rsv = &fs_info->trans_block_rsv; in btrfs_truncate()
9360 ret = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
9364 btrfs_end_transaction(trans); in btrfs_truncate()
9367 trans = btrfs_start_transaction(root, 2); in btrfs_truncate()
9368 if (IS_ERR(trans)) { in btrfs_truncate()
9369 ret = PTR_ERR(trans); in btrfs_truncate()
9370 trans = NULL; in btrfs_truncate()
9378 trans->block_rsv = rsv; in btrfs_truncate()
9388 btrfs_end_transaction(trans); in btrfs_truncate()
9394 trans = btrfs_start_transaction(root, 1); in btrfs_truncate()
9395 if (IS_ERR(trans)) { in btrfs_truncate()
9396 ret = PTR_ERR(trans); in btrfs_truncate()
9402 if (trans) { in btrfs_truncate()
9405 trans->block_rsv = &fs_info->trans_block_rsv; in btrfs_truncate()
9406 ret2 = btrfs_update_inode(trans, root, inode); in btrfs_truncate()
9410 ret2 = btrfs_end_transaction(trans); in btrfs_truncate()
9424 int btrfs_create_subvol_root(struct btrfs_trans_handle *trans, in btrfs_create_subvol_root() argument
9433 inode = btrfs_new_inode(trans, new_root, NULL, "..", 2, in btrfs_create_subvol_root()
9446 err = btrfs_subvol_inherit_props(trans, new_root, parent_root); in btrfs_create_subvol_root()
9452 err = btrfs_update_inode(trans, new_root, inode); in btrfs_create_subvol_root()
9688 struct btrfs_trans_handle *trans; in btrfs_rename_exchange() local
9726 trans = btrfs_start_transaction(root, 12); in btrfs_rename_exchange()
9727 if (IS_ERR(trans)) { in btrfs_rename_exchange()
9728 ret = PTR_ERR(trans); in btrfs_rename_exchange()
9733 btrfs_record_root_in_trans(trans, dest); in btrfs_rename_exchange()
9752 btrfs_set_log_full_commit(trans); in btrfs_rename_exchange()
9754 ret = btrfs_insert_inode_ref(trans, dest, in btrfs_rename_exchange()
9767 btrfs_set_log_full_commit(trans); in btrfs_rename_exchange()
9769 ret = btrfs_insert_inode_ref(trans, root, in btrfs_rename_exchange()
9790 btrfs_record_unlink_dir(trans, BTRFS_I(old_dir), in btrfs_rename_exchange()
9792 btrfs_record_unlink_dir(trans, BTRFS_I(new_dir), in btrfs_rename_exchange()
9821 ret = btrfs_unlink_subvol(trans, old_dir, old_dentry); in btrfs_rename_exchange()
9823 ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), in btrfs_rename_exchange()
9828 ret = btrfs_update_inode(trans, root, old_inode); in btrfs_rename_exchange()
9831 btrfs_abort_transaction(trans, ret); in btrfs_rename_exchange()
9837 ret = btrfs_unlink_subvol(trans, new_dir, new_dentry); in btrfs_rename_exchange()
9839 ret = __btrfs_unlink_inode(trans, dest, BTRFS_I(new_dir), in btrfs_rename_exchange()
9844 ret = btrfs_update_inode(trans, dest, new_inode); in btrfs_rename_exchange()
9847 btrfs_abort_transaction(trans, ret); in btrfs_rename_exchange()
9851 ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode), in btrfs_rename_exchange()
9855 btrfs_abort_transaction(trans, ret); in btrfs_rename_exchange()
9859 ret = btrfs_add_link(trans, BTRFS_I(old_dir), BTRFS_I(new_inode), in btrfs_rename_exchange()
9863 btrfs_abort_transaction(trans, ret); in btrfs_rename_exchange()
9873 btrfs_log_new_name(trans, BTRFS_I(old_inode), BTRFS_I(old_dir), in btrfs_rename_exchange()
9879 btrfs_log_new_name(trans, BTRFS_I(new_inode), BTRFS_I(new_dir), in btrfs_rename_exchange()
9902 btrfs_set_log_full_commit(trans); in btrfs_rename_exchange()
9913 ret2 = btrfs_end_transaction(trans); in btrfs_rename_exchange()
9923 static int btrfs_whiteout_for_rename(struct btrfs_trans_handle *trans, in btrfs_whiteout_for_rename() argument
9937 inode = btrfs_new_inode(trans, root, dir, in btrfs_whiteout_for_rename()
9954 ret = btrfs_init_inode_security(trans, inode, dir, in btrfs_whiteout_for_rename()
9959 ret = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, in btrfs_whiteout_for_rename()
9964 ret = btrfs_update_inode(trans, root, inode); in btrfs_whiteout_for_rename()
9979 struct btrfs_trans_handle *trans; in btrfs_rename() local
10050 trans = btrfs_start_transaction(root, trans_num_items); in btrfs_rename()
10051 if (IS_ERR(trans)) { in btrfs_rename()
10052 ret = PTR_ERR(trans); in btrfs_rename()
10057 btrfs_record_root_in_trans(trans, dest); in btrfs_rename()
10066 btrfs_set_log_full_commit(trans); in btrfs_rename()
10068 ret = btrfs_insert_inode_ref(trans, dest, in btrfs_rename()
10085 btrfs_record_unlink_dir(trans, BTRFS_I(old_dir), in btrfs_rename()
10089 ret = btrfs_unlink_subvol(trans, old_dir, old_dentry); in btrfs_rename()
10110 ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir), in btrfs_rename()
10115 ret = btrfs_update_inode(trans, root, old_inode); in btrfs_rename()
10118 btrfs_abort_transaction(trans, ret); in btrfs_rename()
10127 ret = btrfs_unlink_subvol(trans, new_dir, new_dentry); in btrfs_rename()
10130 ret = btrfs_unlink_inode(trans, dest, BTRFS_I(new_dir), in btrfs_rename()
10136 ret = btrfs_orphan_add(trans, in btrfs_rename()
10139 btrfs_abort_transaction(trans, ret); in btrfs_rename()
10144 ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode), in btrfs_rename()
10148 btrfs_abort_transaction(trans, ret); in btrfs_rename()
10156 btrfs_log_new_name(trans, BTRFS_I(old_inode), BTRFS_I(old_dir), in btrfs_rename()
10163 ret = btrfs_whiteout_for_rename(trans, root, old_dir, in btrfs_rename()
10167 btrfs_abort_transaction(trans, ret); in btrfs_rename()
10189 btrfs_set_log_full_commit(trans); in btrfs_rename()
10194 ret2 = btrfs_end_transaction(trans); in btrfs_rename()
10390 struct btrfs_trans_handle *trans; in btrfs_symlink() local
10415 trans = btrfs_start_transaction(root, 7); in btrfs_symlink()
10416 if (IS_ERR(trans)) in btrfs_symlink()
10417 return PTR_ERR(trans); in btrfs_symlink()
10423 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name, in btrfs_symlink()
10443 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); in btrfs_symlink()
10456 err = btrfs_insert_empty_item(trans, root, path, &key, in btrfs_symlink()
10465 btrfs_set_file_extent_generation(leaf, ei, trans->transid); in btrfs_symlink()
10482 err = btrfs_update_inode(trans, root, inode); in btrfs_symlink()
10489 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, in btrfs_symlink()
10497 btrfs_end_transaction(trans); in btrfs_symlink()
10509 struct btrfs_trans_handle *trans) in __btrfs_prealloc_file_range() argument
10525 if (trans) in __btrfs_prealloc_file_range()
10529 trans = btrfs_start_transaction(root, 3); in __btrfs_prealloc_file_range()
10530 if (IS_ERR(trans)) { in __btrfs_prealloc_file_range()
10531 ret = PTR_ERR(trans); in __btrfs_prealloc_file_range()
10549 btrfs_end_transaction(trans); in __btrfs_prealloc_file_range()
10564 ret = insert_reserved_file_extent(trans, inode, in __btrfs_prealloc_file_range()
10572 btrfs_abort_transaction(trans, ret); in __btrfs_prealloc_file_range()
10574 btrfs_end_transaction(trans); in __btrfs_prealloc_file_range()
10597 em->generation = trans->transid; in __btrfs_prealloc_file_range()
10629 ret = btrfs_update_inode(trans, root, inode); in __btrfs_prealloc_file_range()
10632 btrfs_abort_transaction(trans, ret); in __btrfs_prealloc_file_range()
10634 btrfs_end_transaction(trans); in __btrfs_prealloc_file_range()
10639 btrfs_end_transaction(trans); in __btrfs_prealloc_file_range()
10657 struct btrfs_trans_handle *trans, int mode, in btrfs_prealloc_file_range_trans() argument
10662 min_size, actual_len, alloc_hint, trans); in btrfs_prealloc_file_range_trans()
10688 struct btrfs_trans_handle *trans; in btrfs_tmpfile() local
10698 trans = btrfs_start_transaction(root, 5); in btrfs_tmpfile()
10699 if (IS_ERR(trans)) in btrfs_tmpfile()
10700 return PTR_ERR(trans); in btrfs_tmpfile()
10706 inode = btrfs_new_inode(trans, root, dir, NULL, 0, in btrfs_tmpfile()
10720 ret = btrfs_init_inode_security(trans, inode, dir, NULL); in btrfs_tmpfile()
10724 ret = btrfs_update_inode(trans, root, inode); in btrfs_tmpfile()
10727 ret = btrfs_orphan_add(trans, BTRFS_I(inode)); in btrfs_tmpfile()
10743 btrfs_end_transaction(trans); in btrfs_tmpfile()