blob: 4f1496ae6f24772e3472ed31fd806c2585c3442d [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;
Chris Mason2c90e5d2007-04-02 10:50:19 -040010 int magic;
Chris Mason79154b12007-03-22 15:59:16 -040011 wait_queue_head_t writer_wait;
12 wait_queue_head_t commit_wait;
13};
14
Chris Masone089f052007-03-16 16:20:31 -040015struct btrfs_trans_handle {
Chris Mason2c90e5d2007-04-02 10:50:19 -040016 int magic;
Chris Masone089f052007-03-16 16:20:31 -040017 u64 transid;
18 unsigned long blocks_reserved;
19 unsigned long blocks_used;
Chris Mason79154b12007-03-22 15:59:16 -040020 struct btrfs_transaction *transaction;
Chris Mason2c90e5d2007-04-02 10:50:19 -040021 int magic2;
Chris Masone089f052007-03-16 16:20:31 -040022};
23
Chris Masone089f052007-03-16 16:20:31 -040024
Chris Mason79154b12007-03-22 15:59:16 -040025int btrfs_end_transaction(struct btrfs_trans_handle *trans,
26 struct btrfs_root *root);
27struct btrfs_trans_handle *btrfs_start_transaction(struct btrfs_root *root,
28 int num_blocks);
29int btrfs_write_and_wait_transaction(struct btrfs_trans_handle *trans,
30 struct btrfs_root *root);
31int btrfs_commit_tree_roots(struct btrfs_trans_handle *trans,
32 struct btrfs_root *root);
Chris Masone089f052007-03-16 16:20:31 -040033#endif