diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-03-16 21:20:31 +0100 |
---|---|---|
committer | David Woodhouse <dwmw2@hera.kernel.org> | 2007-03-16 21:20:31 +0100 |
commit | e089f05c18ab36ed5fa7e2319052e03ab800d518 (patch) | |
tree | f20d727233bb23fa5a37fc050cf0cc5c9d5e7b48 /fs/btrfs/transaction.h | |
parent | Btrfs: pin freed blocks from the FS tree too (diff) | |
download | linux-e089f05c18ab36ed5fa7e2319052e03ab800d518.tar.xz linux-e089f05c18ab36ed5fa7e2319052e03ab800d518.zip |
Btrfs: transaction handles everywhere
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/transaction.h')
-rw-r--r-- | fs/btrfs/transaction.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/fs/btrfs/transaction.h b/fs/btrfs/transaction.h new file mode 100644 index 000000000000..3adb6e69fe43 --- /dev/null +++ b/fs/btrfs/transaction.h @@ -0,0 +1,27 @@ +#ifndef __TRANSACTION__ +#define __TRANSACTION__ + +struct btrfs_trans_handle { + u64 transid; + unsigned long blocks_reserved; + unsigned long blocks_used; +}; + +static inline struct btrfs_trans_handle * +btrfs_start_transaction(struct btrfs_root *root, int num_blocks) +{ + struct btrfs_trans_handle *h = malloc(sizeof(*h)); + h->transid = root->root_key.offset; + h->blocks_reserved = num_blocks; + h->blocks_used = 0; + return h; +} + +static inline void btrfs_free_transaction(struct btrfs_root *root, + struct btrfs_trans_handle *handle) +{ + memset(handle, 0, sizeof(*handle)); + free(handle); +} + +#endif |