Lines Matching defs:trans
143 static int btrfs_init_inode_security(struct btrfs_trans_handle *trans,
149 err = btrfs_init_acl(trans, inode, dir);
151 err = btrfs_xattr_security_init(trans, inode, dir, qstr);
160 static int insert_inline_extent(struct btrfs_trans_handle *trans,
194 ret = btrfs_insert_empty_item(trans, root, path, &key,
202 btrfs_set_file_extent_generation(leaf, ei, trans->transid);
259 ret = btrfs_update_inode(trans, root, inode);
278 struct btrfs_trans_handle *trans;
306 trans = btrfs_join_transaction(root);
307 if (IS_ERR(trans)) {
309 return PTR_ERR(trans);
311 trans->block_rsv = &inode->block_rsv;
320 ret = __btrfs_drop_extents(trans, root, inode, path, start, aligned_end,
324 btrfs_abort_transaction(trans, ret);
330 ret = insert_inline_extent(trans, path, extent_inserted,
335 btrfs_abort_transaction(trans, ret);
353 btrfs_end_transaction(trans);
2239 static int add_pending_csums(struct btrfs_trans_handle *trans,
2246 trans->adding_csums = true;
2247 ret = btrfs_csum_file_blocks(trans, trans->fs_info->csum_root, sum);
2248 trans->adding_csums = false;
2510 static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
2539 ret = __btrfs_drop_extents(trans, root, inode, path, file_pos,
2551 ret = btrfs_insert_empty_item(trans, root, path, &ins,
2557 btrfs_set_stack_file_extent_generation(stack_fi, trans->transid);
2575 ret = btrfs_alloc_reserved_file_extent(trans, root, btrfs_ino(inode),
2598 static int insert_ordered_extent_file_extent(struct btrfs_trans_handle *trans,
2618 return insert_reserved_file_extent(trans, BTRFS_I(oe->inode),
2633 struct btrfs_trans_handle *trans = NULL;
2677 trans = btrfs_join_transaction_spacecache(root);
2679 trans = btrfs_join_transaction(root);
2680 if (IS_ERR(trans)) {
2681 ret = PTR_ERR(trans);
2682 trans = NULL;
2685 trans->block_rsv = &BTRFS_I(inode)->block_rsv;
2686 ret = btrfs_update_inode_fallback(trans, root, inode);
2688 btrfs_abort_transaction(trans, ret);
2696 trans = btrfs_join_transaction_spacecache(root);
2698 trans = btrfs_join_transaction(root);
2699 if (IS_ERR(trans)) {
2700 ret = PTR_ERR(trans);
2701 trans = NULL;
2705 trans->block_rsv = &BTRFS_I(inode)->block_rsv;
2711 ret = btrfs_mark_extent_written(trans, BTRFS_I(inode),
2717 ret = insert_ordered_extent_file_extent(trans, ordered_extent);
2727 ordered_extent->num_bytes, trans->transid);
2729 btrfs_abort_transaction(trans, ret);
2733 ret = add_pending_csums(trans, &ordered_extent->list);
2735 btrfs_abort_transaction(trans, ret);
2740 ret = btrfs_update_inode_fallback(trans, root, inode);
2742 btrfs_abort_transaction(trans, ret);
2756 if (trans)
2757 btrfs_end_transaction(trans);
3009 int btrfs_orphan_add(struct btrfs_trans_handle *trans,
3014 ret = btrfs_insert_orphan_item(trans, inode->root, btrfs_ino(inode));
3016 btrfs_abort_transaction(trans, ret);
3027 static int btrfs_orphan_del(struct btrfs_trans_handle *trans,
3030 return btrfs_del_orphan_item(trans, inode->root, btrfs_ino(inode));
3043 struct btrfs_trans_handle *trans;
3168 trans = btrfs_start_transaction(root, 1);
3169 if (IS_ERR(trans)) {
3170 ret = PTR_ERR(trans);
3175 ret = btrfs_del_orphan_item(trans, root,
3177 btrfs_end_transaction(trans);
3194 trans = btrfs_join_transaction(root);
3195 if (!IS_ERR(trans))
3196 btrfs_end_transaction(trans);
3481 static void fill_inode_item(struct btrfs_trans_handle *trans,
3520 btrfs_set_token_inode_transid(&token, item, trans->transid);
3529 static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
3542 ret = btrfs_lookup_inode(trans, root, path, &BTRFS_I(inode)->location,
3554 fill_inode_item(trans, leaf, inode_item, inode);
3556 btrfs_set_inode_last_trans(trans, BTRFS_I(inode));
3566 noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
3582 btrfs_update_root_times(trans, root);
3584 ret = btrfs_delayed_update_inode(trans, root, inode);
3586 btrfs_set_inode_last_trans(trans, BTRFS_I(inode));
3590 return btrfs_update_inode_item(trans, root, inode);
3593 noinline int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
3599 ret = btrfs_update_inode(trans, root, inode);
3601 return btrfs_update_inode_item(trans, root, inode);
3610 static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
3631 di = btrfs_lookup_dir_item(trans, root, path, dir_ino,
3637 ret = btrfs_delete_one_dir_name(trans, root, path, di);
3660 ret = btrfs_del_inode_ref(trans, root, name, name_len, ino,
3666 btrfs_abort_transaction(trans, ret);
3670 ret = btrfs_delete_delayed_dir_index(trans, dir, index);
3672 btrfs_abort_transaction(trans, ret);
3676 ret = btrfs_del_inode_ref_in_log(trans, root, name, name_len, inode,
3679 btrfs_abort_transaction(trans, ret);
3683 ret = btrfs_del_dir_entries_in_log(trans, root, name, name_len, dir,
3688 btrfs_abort_transaction(trans, ret);
3710 ret = btrfs_update_inode(trans, root, &dir->vfs_inode);
3715 int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
3721 ret = __btrfs_unlink_inode(trans, root, dir, inode, name, name_len);
3724 ret = btrfs_update_inode(trans, root, &inode->vfs_inode);
3754 struct btrfs_trans_handle *trans;
3758 trans = __unlink_start_trans(dir);
3759 if (IS_ERR(trans))
3760 return PTR_ERR(trans);
3762 btrfs_record_unlink_dir(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
3765 ret = btrfs_unlink_inode(trans, root, BTRFS_I(dir),
3772 ret = btrfs_orphan_add(trans, BTRFS_I(inode));
3778 btrfs_end_transaction(trans);
3783 static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
3812 di = btrfs_lookup_dir_item(trans, root, path, dir_ino,
3822 ret = btrfs_delete_one_dir_name(trans, root, path, di);
3824 btrfs_abort_transaction(trans, ret);
3846 btrfs_abort_transaction(trans, ret);
3855 ret = btrfs_del_root_ref(trans, objectid,
3859 btrfs_abort_transaction(trans, ret);
3864 ret = btrfs_delete_delayed_dir_index(trans, BTRFS_I(dir), index);
3866 btrfs_abort_transaction(trans, ret);
3873 ret = btrfs_update_inode_fallback(trans, root, dir);
3875 btrfs_abort_transaction(trans, ret);
4006 struct btrfs_trans_handle *trans;
4054 trans = btrfs_start_transaction(root, 0);
4055 if (IS_ERR(trans)) {
4056 ret = PTR_ERR(trans);
4059 trans->block_rsv = &block_rsv;
4060 trans->bytes_reserved = block_rsv.size;
4062 btrfs_record_snapshot_destroy(trans, BTRFS_I(dir));
4064 ret = btrfs_unlink_subvol(trans, dir, dentry);
4066 btrfs_abort_transaction(trans, ret);
4070 btrfs_record_root_in_trans(trans, dest);
4078 ret = btrfs_insert_orphan_item(trans,
4082 btrfs_abort_transaction(trans, ret);
4087 ret = btrfs_uuid_tree_remove(trans, dest->root_item.uuid,
4091 btrfs_abort_transaction(trans, ret);
4095 ret = btrfs_uuid_tree_remove(trans,
4100 btrfs_abort_transaction(trans, ret);
4108 trans->block_rsv = NULL;
4109 trans->bytes_reserved = 0;
4110 ret = btrfs_end_transaction(trans);
4144 struct btrfs_trans_handle *trans;
4152 trans = __unlink_start_trans(dir);
4153 if (IS_ERR(trans))
4154 return PTR_ERR(trans);
4157 err = btrfs_unlink_subvol(trans, dir, dentry);
4161 err = btrfs_orphan_add(trans, BTRFS_I(inode));
4168 err = btrfs_unlink_inode(trans, root, BTRFS_I(dir),
4184 if (last_unlink_trans >= trans->transid)
4188 btrfs_end_transaction(trans);
4211 int btrfs_truncate_inode_items(struct btrfs_trans_handle *trans,
4291 btrfs_should_end_transaction(trans)) {
4296 ret = btrfs_search_slot(trans, root, &key, path, -1, 1);
4442 btrfs_abort_transaction(trans, ret);
4480 ret = btrfs_free_extent(trans, &ref);
4482 btrfs_abort_transaction(trans, ret);
4486 if (btrfs_should_throttle_delayed_refs(trans))
4498 ret = btrfs_del_items(trans, root, path,
4502 btrfs_abort_transaction(trans, ret);
4536 err = btrfs_del_items(trans, root, path, pending_del_slot,
4539 btrfs_abort_transaction(trans, err);
4709 struct btrfs_trans_handle *trans;
4728 trans = btrfs_start_transaction(root, 3);
4729 if (IS_ERR(trans))
4730 return PTR_ERR(trans);
4732 ret = btrfs_drop_extents(trans, root, inode, offset, offset + len, 1);
4734 btrfs_abort_transaction(trans, ret);
4735 btrfs_end_transaction(trans);
4739 ret = btrfs_insert_file_extent(trans, root, btrfs_ino(BTRFS_I(inode)),
4742 btrfs_abort_transaction(trans, ret);
4744 btrfs_update_inode(trans, root, inode);
4745 btrfs_end_transaction(trans);
4862 struct btrfs_trans_handle *trans;
4896 trans = btrfs_start_transaction(root, 1);
4897 if (IS_ERR(trans)) {
4899 return PTR_ERR(trans);
4905 ret = btrfs_update_inode(trans, root, inode);
4907 btrfs_end_transaction(trans);
5074 struct btrfs_trans_handle *trans;
5107 trans = btrfs_join_transaction(root);
5108 if (IS_ERR(trans))
5109 return trans;
5112 trans->block_rsv = &fs_info->trans_block_rsv;
5113 trans->bytes_reserved = delayed_refs_extra;
5114 btrfs_block_rsv_migrate(rsv, trans->block_rsv,
5117 return trans;
5123 struct btrfs_trans_handle *trans;
5170 trans = evict_refill_and_join(root, rsv);
5171 if (IS_ERR(trans))
5174 trans->block_rsv = rsv;
5176 ret = btrfs_truncate_inode_items(trans, root, inode, 0, 0);
5177 trans->block_rsv = &fs_info->trans_block_rsv;
5178 btrfs_end_transaction(trans);
5195 trans = evict_refill_and_join(root, rsv);
5196 if (!IS_ERR(trans)) {
5197 trans->block_rsv = rsv;
5198 btrfs_orphan_del(trans, BTRFS_I(inode));
5199 trans->block_rsv = &fs_info->trans_block_rsv;
5200 btrfs_end_transaction(trans);
5806 struct btrfs_trans_handle *trans;
5812 trans = btrfs_join_transaction(root);
5813 if (IS_ERR(trans))
5814 return PTR_ERR(trans);
5816 ret = btrfs_update_inode(trans, root, inode);
5819 btrfs_end_transaction(trans);
5820 trans = btrfs_start_transaction(root, 1);
5821 if (IS_ERR(trans))
5822 return PTR_ERR(trans);
5824 ret = btrfs_update_inode(trans, root, inode);
5826 btrfs_end_transaction(trans);
5980 static struct inode *btrfs_new_inode(struct btrfs_trans_handle *trans,
6045 BTRFS_I(inode)->generation = trans->transid;
6088 ret = btrfs_insert_empty_items(trans, root, path, key, sizes, nitems);
6104 fill_inode_item(trans, path->nodes[0], inode_item, inode);
6131 btrfs_set_inode_last_trans(trans, BTRFS_I(inode));
6133 btrfs_update_root_times(trans, root);
6135 ret = btrfs_inode_inherit_props(trans, inode, dir);
6158 int btrfs_add_link(struct btrfs_trans_handle *trans,
6177 ret = btrfs_add_root_ref(trans, key.objectid,
6181 ret = btrfs_insert_inode_ref(trans, root, name, name_len, ino,
6189 ret = btrfs_insert_dir_item(trans, name, name_len, parent_inode, &key,
6194 btrfs_abort_transaction(trans, ret);
6213 ret = btrfs_update_inode(trans, root, &parent_inode->vfs_inode);
6215 btrfs_abort_transaction(trans, ret);
6222 err = btrfs_del_root_ref(trans, key.objectid,
6226 btrfs_abort_transaction(trans, err);
6231 err = btrfs_del_inode_ref(trans, root, name, name_len,
6234 btrfs_abort_transaction(trans, err);
6241 static int btrfs_add_nondir(struct btrfs_trans_handle *trans,
6245 int err = btrfs_add_link(trans, dir, inode,
6257 struct btrfs_trans_handle *trans;
6269 trans = btrfs_start_transaction(root, 5);
6270 if (IS_ERR(trans))
6271 return PTR_ERR(trans);
6277 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name,
6295 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name);
6299 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode),
6304 btrfs_update_inode(trans, root, inode);
6308 btrfs_end_transaction(trans);
6321 struct btrfs_trans_handle *trans;
6333 trans = btrfs_start_transaction(root, 5);
6334 if (IS_ERR(trans))
6335 return PTR_ERR(trans);
6341 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name,
6359 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name);
6363 err = btrfs_update_inode(trans, root, inode);
6367 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode),
6375 btrfs_end_transaction(trans);
6387 struct btrfs_trans_handle *trans = NULL;
6412 trans = btrfs_start_transaction(root, inode->i_nlink ? 5 : 6);
6413 if (IS_ERR(trans)) {
6414 err = PTR_ERR(trans);
6415 trans = NULL;
6427 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry, BTRFS_I(inode),
6435 err = btrfs_update_inode(trans, root, inode);
6443 err = btrfs_orphan_del(trans, BTRFS_I(inode));
6448 btrfs_log_new_name(trans, BTRFS_I(inode), NULL, parent);
6452 if (trans)
6453 btrfs_end_transaction(trans);
6466 struct btrfs_trans_handle *trans;
6477 trans = btrfs_start_transaction(root, 5);
6478 if (IS_ERR(trans))
6479 return PTR_ERR(trans);
6485 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name,
6498 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name);
6503 err = btrfs_update_inode(trans, root, inode);
6507 err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
6516 btrfs_end_transaction(trans);
8494 struct btrfs_trans_handle *trans;
8543 trans = btrfs_start_transaction(root, 2);
8544 if (IS_ERR(trans)) {
8545 ret = PTR_ERR(trans);
8562 trans->block_rsv = rsv;
8565 ret = btrfs_truncate_inode_items(trans, root, inode,
8568 trans->block_rsv = &fs_info->trans_block_rsv;
8572 ret = btrfs_update_inode(trans, root, inode);
8576 btrfs_end_transaction(trans);
8579 trans = btrfs_start_transaction(root, 2);
8580 if (IS_ERR(trans)) {
8581 ret = PTR_ERR(trans);
8582 trans = NULL;
8590 trans->block_rsv = rsv;
8594 * We can't call btrfs_truncate_block inside a trans handle as we could
8600 btrfs_end_transaction(trans);
8606 trans = btrfs_start_transaction(root, 1);
8607 if (IS_ERR(trans)) {
8608 ret = PTR_ERR(trans);
8614 if (trans) {
8617 trans->block_rsv = &fs_info->trans_block_rsv;
8618 ret2 = btrfs_update_inode(trans, root, inode);
8622 ret2 = btrfs_end_transaction(trans);
8636 int btrfs_create_subvol_root(struct btrfs_trans_handle *trans,
8645 inode = btrfs_new_inode(trans, new_root, NULL, "..", 2,
8658 err = btrfs_subvol_inherit_props(trans, new_root, parent_root);
8664 err = btrfs_update_inode(trans, new_root, inode);
8904 struct btrfs_trans_handle *trans;
8943 trans = btrfs_start_transaction(root, 12);
8944 if (IS_ERR(trans)) {
8945 ret = PTR_ERR(trans);
8950 btrfs_record_root_in_trans(trans, dest);
8969 btrfs_set_log_full_commit(trans);
8973 ret = btrfs_insert_inode_ref(trans, dest,
8987 btrfs_set_log_full_commit(trans);
8991 ret = btrfs_insert_inode_ref(trans, root,
8999 btrfs_abort_transaction(trans, ret);
9015 btrfs_record_unlink_dir(trans, BTRFS_I(old_dir),
9017 btrfs_record_unlink_dir(trans, BTRFS_I(new_dir),
9023 ret = btrfs_unlink_subvol(trans, old_dir, old_dentry);
9025 ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir),
9030 ret = btrfs_update_inode(trans, root, old_inode);
9033 btrfs_abort_transaction(trans, ret);
9039 ret = btrfs_unlink_subvol(trans, new_dir, new_dentry);
9041 ret = __btrfs_unlink_inode(trans, dest, BTRFS_I(new_dir),
9046 ret = btrfs_update_inode(trans, dest, new_inode);
9049 btrfs_abort_transaction(trans, ret);
9053 ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode),
9057 btrfs_abort_transaction(trans, ret);
9061 ret = btrfs_add_link(trans, BTRFS_I(old_dir), BTRFS_I(new_inode),
9065 btrfs_abort_transaction(trans, ret);
9075 btrfs_log_new_name(trans, BTRFS_I(old_inode), BTRFS_I(old_dir),
9081 btrfs_log_new_name(trans, BTRFS_I(new_inode), BTRFS_I(new_dir),
9104 btrfs_set_log_full_commit(trans);
9115 ret2 = btrfs_end_transaction(trans);
9125 static int btrfs_whiteout_for_rename(struct btrfs_trans_handle *trans,
9139 inode = btrfs_new_inode(trans, root, dir,
9156 ret = btrfs_init_inode_security(trans, inode, dir,
9161 ret = btrfs_add_nondir(trans, BTRFS_I(dir), dentry,
9166 ret = btrfs_update_inode(trans, root, inode);
9181 struct btrfs_trans_handle *trans;
9252 trans = btrfs_start_transaction(root, trans_num_items);
9253 if (IS_ERR(trans)) {
9254 ret = PTR_ERR(trans);
9259 btrfs_record_root_in_trans(trans, dest);
9268 btrfs_set_log_full_commit(trans);
9272 ret = btrfs_insert_inode_ref(trans, dest,
9289 btrfs_record_unlink_dir(trans, BTRFS_I(old_dir),
9293 ret = btrfs_unlink_subvol(trans, old_dir, old_dentry);
9295 ret = __btrfs_unlink_inode(trans, root, BTRFS_I(old_dir),
9300 ret = btrfs_update_inode(trans, root, old_inode);
9303 btrfs_abort_transaction(trans, ret);
9312 ret = btrfs_unlink_subvol(trans, new_dir, new_dentry);
9315 ret = btrfs_unlink_inode(trans, dest, BTRFS_I(new_dir),
9321 ret = btrfs_orphan_add(trans,
9324 btrfs_abort_transaction(trans, ret);
9329 ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode),
9333 btrfs_abort_transaction(trans, ret);
9341 btrfs_log_new_name(trans, BTRFS_I(old_inode), BTRFS_I(old_dir),
9348 ret = btrfs_whiteout_for_rename(trans, root, old_dir,
9352 btrfs_abort_transaction(trans, ret);
9374 btrfs_set_log_full_commit(trans);
9379 ret2 = btrfs_end_transaction(trans);
9602 struct btrfs_trans_handle *trans;
9627 trans = btrfs_start_transaction(root, 7);
9628 if (IS_ERR(trans))
9629 return PTR_ERR(trans);
9635 inode = btrfs_new_inode(trans, root, dir, dentry->d_name.name,
9654 err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name);
9667 err = btrfs_insert_empty_item(trans, root, path, &key,
9676 btrfs_set_file_extent_generation(leaf, ei, trans->transid);
9693 err = btrfs_update_inode(trans, root, inode);
9700 err = btrfs_add_nondir(trans, BTRFS_I(dir), dentry,
9708 btrfs_end_transaction(trans);
9724 struct btrfs_trans_handle *trans = trans_in;
9744 if (trans) {
9745 ret = insert_reserved_file_extent(trans, BTRFS_I(inode),
9749 return trans;
9768 &trans);
9773 return trans;
9779 struct btrfs_trans_handle *trans)
9795 if (trans)
9822 trans = insert_prealloc_file_extent(trans, inode, &ins, cur_offset);
9830 if (IS_ERR(trans)) {
9831 ret = PTR_ERR(trans);
9855 em->generation = trans->transid;
9887 ret = btrfs_update_inode(trans, root, inode);
9890 btrfs_abort_transaction(trans, ret);
9892 btrfs_end_transaction(trans);
9897 btrfs_end_transaction(trans);
9898 trans = NULL;
9917 struct btrfs_trans_handle *trans, int mode,
9922 min_size, actual_len, alloc_hint, trans);
9948 struct btrfs_trans_handle *trans;
9958 trans = btrfs_start_transaction(root, 5);
9959 if (IS_ERR(trans))
9960 return PTR_ERR(trans);
9966 inode = btrfs_new_inode(trans, root, dir, NULL, 0,
9979 ret = btrfs_init_inode_security(trans, inode, dir, NULL);
9983 ret = btrfs_update_inode(trans, root, inode);
9986 ret = btrfs_orphan_add(trans, BTRFS_I(inode));
10002 btrfs_end_transaction(trans);