blob: 3cc29900a074b5d6c3f687ae2ff5206d31b5f072 [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 Mason8fd17792007-04-19 21:01:03 -040011 struct list_head list;
Chris Mason79154b12007-03-22 15:59:16 -040012 wait_queue_head_t writer_wait;
13 wait_queue_head_t commit_wait;
14};
15
Chris Masone089f052007-03-16 16:20:31 -040016struct btrfs_trans_handle {
Chris Mason2c90e5d2007-04-02 10:50:19 -040017 int magic;
Chris Masone089f052007-03-16 16:20:31 -040018 u64 transid;
19 unsigned long blocks_reserved;
20 unsigned long blocks_used;
Chris Mason79154b12007-03-22 15:59:16 -040021 struct btrfs_transaction *transaction;
Chris Mason2c90e5d2007-04-02 10:50:19 -040022 int magic2;
Chris Masone089f052007-03-16 16:20:31 -040023};
24
Chris Masone089f052007-03-16 16:20:31 -040025
Chris Mason79154b12007-03-22 15:59:16 -040026int btrfs_end_transaction(struct btrfs_trans_handle *trans,
27 struct btrfs_root *root);
28struct btrfs_trans_handle *btrfs_start_transaction(struct btrfs_root *root,
29 int num_blocks);
30int btrfs_write_and_wait_transaction(struct btrfs_trans_handle *trans,
31 struct btrfs_root *root);
32int btrfs_commit_tree_roots(struct btrfs_trans_handle *trans,
33 struct btrfs_root *root);
Chris Masone089f052007-03-16 16:20:31 -040034#endif