blob: 7e6c08a0accdf1543039671bd38de34fe5101fb9 [file] [log] [blame]
Chris Masone089f052007-03-16 16:20:31 -04001#ifndef __TRANSACTION__
2#define __TRANSACTION__
3
Chris Mason79154b12007-03-22 15:59:16 -04004struct btrfs_transaction {
5 u64 transid;
6 unsigned long num_writers;
7 int in_commit;
8 int use_count;
9 int commit_done;
10 wait_queue_head_t writer_wait;
11 wait_queue_head_t commit_wait;
12};
13
Chris Masone089f052007-03-16 16:20:31 -040014struct btrfs_trans_handle {
15 u64 transid;
16 unsigned long blocks_reserved;
17 unsigned long blocks_used;
Chris Mason79154b12007-03-22 15:59:16 -040018 struct btrfs_transaction *transaction;
Chris Masone089f052007-03-16 16:20:31 -040019};
20
Chris Masone089f052007-03-16 16:20:31 -040021
Chris Mason79154b12007-03-22 15:59:16 -040022int btrfs_end_transaction(struct btrfs_trans_handle *trans,
23 struct btrfs_root *root);
24struct btrfs_trans_handle *btrfs_start_transaction(struct btrfs_root *root,
25 int num_blocks);
26int btrfs_write_and_wait_transaction(struct btrfs_trans_handle *trans,
27 struct btrfs_root *root);
28int btrfs_commit_tree_roots(struct btrfs_trans_handle *trans,
29 struct btrfs_root *root);
Chris Masone089f052007-03-16 16:20:31 -040030#endif