1 #ifndef __TRANSACTION__
2 #define __TRANSACTION__
3 #include "btrfs_inode.h"
5 struct btrfs_transaction {
7 unsigned long num_writers;
12 struct list_head list;
13 struct radix_tree_root dirty_pages;
14 wait_queue_head_t writer_wait;
15 wait_queue_head_t commit_wait;
18 struct btrfs_trans_handle {
21 unsigned long blocks_reserved;
22 unsigned long blocks_used;
23 struct btrfs_transaction *transaction;
24 struct btrfs_block_group_cache *block_group;
29 static inline void btrfs_set_trans_block_group(struct btrfs_trans_handle *trans,
32 trans->block_group = BTRFS_I(inode)->block_group;
35 static inline void btrfs_update_inode_block_group(struct
36 btrfs_trans_handle *trans,
39 BTRFS_I(inode)->block_group = trans->block_group;
42 int btrfs_end_transaction(struct btrfs_trans_handle *trans,
43 struct btrfs_root *root);
44 struct btrfs_trans_handle *btrfs_start_transaction(struct btrfs_root *root,
46 int btrfs_write_and_wait_transaction(struct btrfs_trans_handle *trans,
47 struct btrfs_root *root);
48 int btrfs_commit_tree_roots(struct btrfs_trans_handle *trans,
49 struct btrfs_root *root);