Lines Matching defs:trans
475 static int btrfs_init_inode_security(struct btrfs_trans_handle *trans,
481 err = __btrfs_set_acl(trans, args->inode, args->default_acl,
487 err = __btrfs_set_acl(trans, args->inode, args->acl, ACL_TYPE_ACCESS);
493 return btrfs_xattr_security_init(trans, args->inode, args->dir,
502 static int insert_inline_extent(struct btrfs_trans_handle *trans,
535 ret = btrfs_insert_empty_item(trans, root, path, &key,
543 btrfs_set_file_extent_generation(leaf, ei, trans->transid);
576 btrfs_mark_buffer_dirty(trans, leaf);
621 struct btrfs_trans_handle *trans;
642 trans = btrfs_join_transaction(root);
643 if (IS_ERR(trans)) {
645 return PTR_ERR(trans);
647 trans->block_rsv = &inode->block_rsv;
655 ret = btrfs_drop_extents(trans, root, inode, &drop_args);
657 btrfs_abort_transaction(trans, ret);
661 ret = insert_inline_extent(trans, path, inode, drop_args.extent_inserted,
665 btrfs_abort_transaction(trans, ret);
673 ret = btrfs_update_inode(trans, root, inode);
675 btrfs_abort_transaction(trans, ret);
692 btrfs_end_transaction(trans);
2589 static int add_pending_csums(struct btrfs_trans_handle *trans,
2597 trans->adding_csums = true;
2599 csum_root = btrfs_csum_root(trans->fs_info,
2601 ret = btrfs_csum_file_blocks(trans, csum_root, sum);
2602 trans->adding_csums = false;
2858 static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
2895 ret = btrfs_drop_extents(trans, root, inode, &drop_args);
2904 ret = btrfs_insert_empty_item(trans, root, path, &ins,
2910 btrfs_set_stack_file_extent_generation(stack_fi, trans->transid);
2915 btrfs_mark_buffer_dirty(trans, leaf);
2945 ret = btrfs_alloc_reserved_file_extent(trans, root, btrfs_ino(inode),
2969 static int insert_ordered_extent_file_extent(struct btrfs_trans_handle *trans,
3002 return insert_reserved_file_extent(trans, BTRFS_I(oe->inode),
3017 struct btrfs_trans_handle *trans = NULL;
3064 trans = btrfs_join_transaction_spacecache(root);
3066 trans = btrfs_join_transaction(root);
3067 if (IS_ERR(trans)) {
3068 ret = PTR_ERR(trans);
3069 trans = NULL;
3072 trans->block_rsv = &inode->block_rsv;
3073 ret = btrfs_update_inode_fallback(trans, root, inode);
3075 btrfs_abort_transaction(trans, ret);
3083 trans = btrfs_join_transaction_spacecache(root);
3085 trans = btrfs_join_transaction(root);
3086 if (IS_ERR(trans)) {
3087 ret = PTR_ERR(trans);
3088 trans = NULL;
3092 trans->block_rsv = &inode->block_rsv;
3098 ret = btrfs_mark_extent_written(trans, inode,
3106 ret = insert_ordered_extent_file_extent(trans, ordered_extent);
3115 ordered_extent->num_bytes, trans->transid);
3117 btrfs_abort_transaction(trans, ret);
3121 ret = add_pending_csums(trans, &ordered_extent->list);
3123 btrfs_abort_transaction(trans, ret);
3139 ret = btrfs_update_inode_fallback(trans, root, inode);
3141 btrfs_abort_transaction(trans, ret);
3149 if (trans)
3150 btrfs_end_transaction(trans);
3426 int btrfs_orphan_add(struct btrfs_trans_handle *trans,
3431 ret = btrfs_insert_orphan_item(trans, inode->root, btrfs_ino(inode));
3433 btrfs_abort_transaction(trans, ret);
3444 static int btrfs_orphan_del(struct btrfs_trans_handle *trans,
3447 return btrfs_del_orphan_item(trans, inode->root, btrfs_ino(inode));
3460 struct btrfs_trans_handle *trans;
3611 trans = btrfs_start_transaction(root, 1);
3612 if (IS_ERR(trans)) {
3613 ret = PTR_ERR(trans);
3618 ret = btrfs_del_orphan_item(trans, root,
3620 btrfs_end_transaction(trans);
3635 trans = btrfs_join_transaction(root);
3636 if (!IS_ERR(trans))
3637 btrfs_end_transaction(trans);
3923 static void fill_inode_item(struct btrfs_trans_handle *trans,
3963 btrfs_set_token_inode_transid(&token, item, trans->transid);
3974 static noinline int btrfs_update_inode_item(struct btrfs_trans_handle *trans,
3987 ret = btrfs_lookup_inode(trans, root, path, &inode->location, 1);
3998 fill_inode_item(trans, leaf, inode_item, &inode->vfs_inode);
3999 btrfs_mark_buffer_dirty(trans, leaf);
4000 btrfs_set_inode_last_trans(trans, inode);
4010 noinline int btrfs_update_inode(struct btrfs_trans_handle *trans,
4027 btrfs_update_root_times(trans, root);
4029 ret = btrfs_delayed_update_inode(trans, root, inode);
4031 btrfs_set_inode_last_trans(trans, inode);
4035 return btrfs_update_inode_item(trans, root, inode);
4038 int btrfs_update_inode_fallback(struct btrfs_trans_handle *trans,
4043 ret = btrfs_update_inode(trans, root, inode);
4045 return btrfs_update_inode_item(trans, root, inode);
4054 static int __btrfs_unlink_inode(struct btrfs_trans_handle *trans,
4075 di = btrfs_lookup_dir_item(trans, root, path, dir_ino, name, -1);
4080 ret = btrfs_delete_one_dir_name(trans, root, path, di);
4103 ret = btrfs_del_inode_ref(trans, root, name, ino, dir_ino, &index);
4108 btrfs_abort_transaction(trans, ret);
4115 ret = btrfs_delete_delayed_dir_index(trans, dir, index);
4117 btrfs_abort_transaction(trans, ret);
4128 btrfs_del_inode_ref_in_log(trans, root, name, inode, dir_ino);
4129 btrfs_del_dir_entries_in_log(trans, root, name, dir, index);
4152 ret = btrfs_update_inode(trans, root, dir);
4157 int btrfs_unlink_inode(struct btrfs_trans_handle *trans,
4163 ret = __btrfs_unlink_inode(trans, dir, inode, name, NULL);
4166 ret = btrfs_update_inode(trans, inode->root, inode);
4189 struct btrfs_trans_handle *trans;
4200 trans = __unlink_start_trans(BTRFS_I(dir));
4201 if (IS_ERR(trans)) {
4202 ret = PTR_ERR(trans);
4206 btrfs_record_unlink_dir(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
4209 ret = btrfs_unlink_inode(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
4215 ret = btrfs_orphan_add(trans, BTRFS_I(inode));
4221 btrfs_end_transaction(trans);
4228 static int btrfs_unlink_subvol(struct btrfs_trans_handle *trans,
4265 di = btrfs_lookup_dir_item(trans, root, path, dir_ino,
4275 ret = btrfs_delete_one_dir_name(trans, root, path, di);
4277 btrfs_abort_transaction(trans, ret);
4298 btrfs_abort_transaction(trans, ret);
4307 ret = btrfs_del_root_ref(trans, objectid,
4311 btrfs_abort_transaction(trans, ret);
4316 ret = btrfs_delete_delayed_dir_index(trans, dir, index);
4318 btrfs_abort_transaction(trans, ret);
4325 ret = btrfs_update_inode_fallback(trans, root, dir);
4327 btrfs_abort_transaction(trans, ret);
4460 struct btrfs_trans_handle *trans;
4508 trans = btrfs_start_transaction(root, 0);
4509 if (IS_ERR(trans)) {
4510 ret = PTR_ERR(trans);
4513 trans->block_rsv = &block_rsv;
4514 trans->bytes_reserved = block_rsv.size;
4516 btrfs_record_snapshot_destroy(trans, dir);
4518 ret = btrfs_unlink_subvol(trans, dir, dentry);
4520 btrfs_abort_transaction(trans, ret);
4524 ret = btrfs_record_root_in_trans(trans, dest);
4526 btrfs_abort_transaction(trans, ret);
4536 ret = btrfs_insert_orphan_item(trans,
4540 btrfs_abort_transaction(trans, ret);
4545 ret = btrfs_uuid_tree_remove(trans, dest->root_item.uuid,
4549 btrfs_abort_transaction(trans, ret);
4553 ret = btrfs_uuid_tree_remove(trans,
4558 btrfs_abort_transaction(trans, ret);
4566 trans->block_rsv = NULL;
4567 trans->bytes_reserved = 0;
4568 ret = btrfs_end_transaction(trans);
4596 struct btrfs_trans_handle *trans;
4617 trans = __unlink_start_trans(BTRFS_I(dir));
4618 if (IS_ERR(trans)) {
4619 err = PTR_ERR(trans);
4624 err = btrfs_unlink_subvol(trans, BTRFS_I(dir), dentry);
4628 err = btrfs_orphan_add(trans, BTRFS_I(inode));
4635 err = btrfs_unlink_inode(trans, BTRFS_I(dir), BTRFS_I(d_inode(dentry)),
4650 if (last_unlink_trans >= trans->transid)
4654 btrfs_end_transaction(trans);
4817 struct btrfs_trans_handle *trans;
4835 trans = btrfs_start_transaction(root, 3);
4836 if (IS_ERR(trans))
4837 return PTR_ERR(trans);
4843 ret = btrfs_drop_extents(trans, root, inode, &drop_args);
4845 btrfs_abort_transaction(trans, ret);
4846 btrfs_end_transaction(trans);
4850 ret = btrfs_insert_hole_extent(trans, root, btrfs_ino(inode), offset, len);
4852 btrfs_abort_transaction(trans, ret);
4855 btrfs_update_inode(trans, root, inode);
4857 btrfs_end_transaction(trans);
4963 struct btrfs_trans_handle *trans;
4997 trans = btrfs_start_transaction(root, 1);
4998 if (IS_ERR(trans)) {
5000 return PTR_ERR(trans);
5006 ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
5008 btrfs_end_transaction(trans);
5167 struct btrfs_trans_handle *trans;
5198 trans = btrfs_join_transaction(root);
5199 if (IS_ERR(trans))
5200 return trans;
5203 trans->block_rsv = &fs_info->trans_block_rsv;
5204 trans->bytes_reserved = delayed_refs_extra;
5205 btrfs_block_rsv_migrate(rsv, trans->block_rsv,
5208 return trans;
5214 struct btrfs_trans_handle *trans;
5279 trans = evict_refill_and_join(root, rsv);
5280 if (IS_ERR(trans))
5283 trans->block_rsv = rsv;
5285 ret = btrfs_truncate_inode_items(trans, root, &control);
5286 trans->block_rsv = &fs_info->trans_block_rsv;
5287 btrfs_end_transaction(trans);
5309 trans = evict_refill_and_join(root, rsv);
5310 if (!IS_ERR(trans)) {
5311 trans->block_rsv = rsv;
5312 btrfs_orphan_del(trans, BTRFS_I(inode));
5313 trans->block_rsv = &fs_info->trans_block_rsv;
5314 btrfs_end_transaction(trans);
6012 struct btrfs_trans_handle *trans;
6018 trans = btrfs_join_transaction(root);
6019 if (IS_ERR(trans))
6020 return PTR_ERR(trans);
6022 ret = btrfs_update_inode(trans, root, inode);
6025 btrfs_end_transaction(trans);
6026 trans = btrfs_start_transaction(root, 1);
6027 if (IS_ERR(trans))
6028 return PTR_ERR(trans);
6030 ret = btrfs_update_inode(trans, root, inode);
6032 btrfs_end_transaction(trans);
6179 int btrfs_create_new_inode(struct btrfs_trans_handle *trans,
6226 BTRFS_I(inode)->generation = trans->transid;
6293 ret = btrfs_insert_empty_items(trans, root, path, &batch);
6295 btrfs_abort_transaction(trans, ret);
6312 fill_inode_item(trans, path->nodes[0], inode_item, inode);
6332 btrfs_mark_buffer_dirty(trans, path->nodes[0]);
6353 ret = btrfs_inode_inherit_props(trans, inode, parent);
6357 ret = btrfs_inode_inherit_props(trans, inode, dir);
6371 ret = btrfs_init_inode_security(trans, args);
6373 btrfs_abort_transaction(trans, ret);
6381 btrfs_set_inode_last_trans(trans, BTRFS_I(inode));
6383 btrfs_update_root_times(trans, root);
6386 ret = btrfs_orphan_add(trans, BTRFS_I(inode));
6388 ret = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode), name,
6392 btrfs_abort_transaction(trans, ret);
6416 int btrfs_add_link(struct btrfs_trans_handle *trans,
6435 ret = btrfs_add_root_ref(trans, key.objectid,
6439 ret = btrfs_insert_inode_ref(trans, root, name,
6447 ret = btrfs_insert_dir_item(trans, name, parent_inode, &key,
6452 btrfs_abort_transaction(trans, ret);
6469 ret = btrfs_update_inode(trans, root, parent_inode);
6471 btrfs_abort_transaction(trans, ret);
6478 err = btrfs_del_root_ref(trans, key.objectid,
6482 btrfs_abort_transaction(trans, err);
6487 err = btrfs_del_inode_ref(trans, root, name, ino, parent_ino,
6490 btrfs_abort_transaction(trans, err);
6508 struct btrfs_trans_handle *trans;
6515 trans = btrfs_start_transaction(root, trans_num_items);
6516 if (IS_ERR(trans)) {
6517 err = PTR_ERR(trans);
6521 err = btrfs_create_new_inode(trans, &new_inode_args);
6525 btrfs_end_transaction(trans);
6567 struct btrfs_trans_handle *trans = NULL;
6597 trans = btrfs_start_transaction(root, inode->i_nlink ? 5 : 6);
6598 if (IS_ERR(trans)) {
6599 err = PTR_ERR(trans);
6600 trans = NULL;
6612 err = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode),
6620 err = btrfs_update_inode(trans, root, BTRFS_I(inode));
6628 err = btrfs_orphan_del(trans, BTRFS_I(inode));
6633 btrfs_log_new_name(trans, old_dentry, NULL, 0, parent);
6638 if (trans)
6639 btrfs_end_transaction(trans);
8270 struct btrfs_trans_handle *trans;
8320 trans = btrfs_start_transaction(root, 2);
8321 if (IS_ERR(trans)) {
8322 ret = PTR_ERR(trans);
8335 btrfs_end_transaction(trans);
8339 trans->block_rsv = rsv;
8357 ret = btrfs_truncate_inode_items(trans, root, &control);
8364 trans->block_rsv = &fs_info->trans_block_rsv;
8368 ret = btrfs_update_inode(trans, root, inode);
8372 btrfs_end_transaction(trans);
8375 trans = btrfs_start_transaction(root, 2);
8376 if (IS_ERR(trans)) {
8377 ret = PTR_ERR(trans);
8378 trans = NULL;
8393 trans->block_rsv = rsv;
8397 * We can't call btrfs_truncate_block inside a trans handle as we could
8403 btrfs_end_transaction(trans);
8409 trans = btrfs_start_transaction(root, 1);
8410 if (IS_ERR(trans)) {
8411 ret = PTR_ERR(trans);
8417 if (trans) {
8420 trans->block_rsv = &fs_info->trans_block_rsv;
8421 ret2 = btrfs_update_inode(trans, root, inode);
8425 ret2 = btrfs_end_transaction(trans);
8699 struct btrfs_trans_handle *trans;
8776 trans = btrfs_start_transaction(root, trans_num_items);
8777 if (IS_ERR(trans)) {
8778 ret = PTR_ERR(trans);
8783 ret = btrfs_record_root_in_trans(trans, dest);
8805 btrfs_set_log_full_commit(trans);
8807 ret = btrfs_insert_inode_ref(trans, dest, new_name, old_ino,
8818 btrfs_set_log_full_commit(trans);
8820 ret = btrfs_insert_inode_ref(trans, root, old_name, new_ino,
8825 btrfs_abort_transaction(trans, ret);
8838 btrfs_record_unlink_dir(trans, BTRFS_I(old_dir),
8840 btrfs_record_unlink_dir(trans, BTRFS_I(new_dir),
8846 ret = btrfs_unlink_subvol(trans, BTRFS_I(old_dir), old_dentry);
8848 ret = __btrfs_unlink_inode(trans, BTRFS_I(old_dir),
8852 ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
8855 btrfs_abort_transaction(trans, ret);
8861 ret = btrfs_unlink_subvol(trans, BTRFS_I(new_dir), new_dentry);
8863 ret = __btrfs_unlink_inode(trans, BTRFS_I(new_dir),
8867 ret = btrfs_update_inode(trans, dest, BTRFS_I(new_inode));
8870 btrfs_abort_transaction(trans, ret);
8874 ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode),
8877 btrfs_abort_transaction(trans, ret);
8881 ret = btrfs_add_link(trans, BTRFS_I(old_dir), BTRFS_I(new_inode),
8884 btrfs_abort_transaction(trans, ret);
8906 btrfs_log_new_name(trans, old_dentry, BTRFS_I(old_dir),
8909 btrfs_log_new_name(trans, new_dentry, BTRFS_I(new_dir),
8918 ret2 = btrfs_end_transaction(trans);
8955 struct btrfs_trans_handle *trans;
9068 trans = btrfs_start_transaction(root, trans_num_items);
9069 if (IS_ERR(trans)) {
9070 ret = PTR_ERR(trans);
9075 ret = btrfs_record_root_in_trans(trans, dest);
9087 btrfs_set_log_full_commit(trans);
9089 ret = btrfs_insert_inode_ref(trans, dest, &new_fname.disk_name,
9102 btrfs_record_unlink_dir(trans, BTRFS_I(old_dir),
9106 ret = btrfs_unlink_subvol(trans, BTRFS_I(old_dir), old_dentry);
9108 ret = __btrfs_unlink_inode(trans, BTRFS_I(old_dir),
9112 ret = btrfs_update_inode(trans, root, BTRFS_I(old_inode));
9115 btrfs_abort_transaction(trans, ret);
9123 ret = btrfs_unlink_subvol(trans, BTRFS_I(new_dir), new_dentry);
9126 ret = btrfs_unlink_inode(trans, BTRFS_I(new_dir),
9131 ret = btrfs_orphan_add(trans,
9134 btrfs_abort_transaction(trans, ret);
9139 ret = btrfs_add_link(trans, BTRFS_I(new_dir), BTRFS_I(old_inode),
9142 btrfs_abort_transaction(trans, ret);
9150 btrfs_log_new_name(trans, old_dentry, BTRFS_I(old_dir),
9154 ret = btrfs_create_new_inode(trans, &whiteout_args);
9156 btrfs_abort_transaction(trans, ret);
9165 ret2 = btrfs_end_transaction(trans);
9393 struct btrfs_trans_handle *trans;
9431 trans = btrfs_start_transaction(root, trans_num_items);
9432 if (IS_ERR(trans)) {
9433 err = PTR_ERR(trans);
9437 err = btrfs_create_new_inode(trans, &new_inode_args);
9444 btrfs_abort_transaction(trans, err);
9453 err = btrfs_insert_empty_item(trans, root, path, &key,
9456 btrfs_abort_transaction(trans, err);
9465 btrfs_set_file_extent_generation(leaf, ei, trans->transid);
9475 btrfs_mark_buffer_dirty(trans, leaf);
9481 btrfs_end_transaction(trans);
9499 struct btrfs_trans_handle *trans = trans_in;
9520 if (trans) {
9521 ret = insert_reserved_file_extent(trans, inode,
9526 return trans;
9548 &trans);
9552 return trans;
9571 struct btrfs_trans_handle *trans)
9586 if (trans)
9613 trans = insert_prealloc_file_extent(trans, BTRFS_I(inode),
9622 if (IS_ERR(trans)) {
9623 ret = PTR_ERR(trans);
9645 em->generation = trans->transid;
9668 ret = btrfs_update_inode(trans, root, BTRFS_I(inode));
9671 btrfs_abort_transaction(trans, ret);
9673 btrfs_end_transaction(trans);
9678 btrfs_end_transaction(trans);
9679 trans = NULL;
9698 struct btrfs_trans_handle *trans, int mode,
9703 min_size, actual_len, alloc_hint, trans);
9726 struct btrfs_trans_handle *trans;
9750 trans = btrfs_start_transaction(root, trans_num_items);
9751 if (IS_ERR(trans)) {
9752 ret = PTR_ERR(trans);
9756 ret = btrfs_create_new_inode(trans, &new_inode_args);
9773 btrfs_end_transaction(trans);