Mountable btrfs, with readdir
[linux-2.6-block.git] / fs / btrfs / disk-io.h
CommitLineData
eb60ceac
CM
1#ifndef __DISKIO__
2#define __DISKIO__
3
e20d96d6 4#include <linux/buffer_head.h>
eb60ceac 5
e20d96d6
CM
6#define BTRFS_SUPER_INFO_OFFSET (16 * 1024)
7
8static inline struct btrfs_node *btrfs_buffer_node(struct buffer_head *bh)
9{
10 return (struct btrfs_node *)bh->b_data;
11}
12
13static inline struct btrfs_leaf *btrfs_buffer_leaf(struct buffer_head *bh)
14{
15 return (struct btrfs_leaf *)bh->b_data;
16}
17
18static inline struct btrfs_header *btrfs_buffer_header(struct buffer_head *bh)
19{
20 return &((struct btrfs_node *)bh->b_data)->header;
21}
22
23struct buffer_head *read_tree_block(struct btrfs_root *root, u64 blocknr);
24struct buffer_head *find_tree_block(struct btrfs_root *root, u64 blocknr);
e089f05c 25int write_tree_block(struct btrfs_trans_handle *trans, struct btrfs_root *root,
e20d96d6 26 struct buffer_head *buf);
e089f05c 27int dirty_tree_block(struct btrfs_trans_handle *trans, struct btrfs_root *root,
e20d96d6 28 struct buffer_head *buf);
e089f05c 29int clean_tree_block(struct btrfs_trans_handle *trans,
e20d96d6 30 struct btrfs_root *root, struct buffer_head *buf);
e089f05c
CM
31int btrfs_commit_transaction(struct btrfs_trans_handle *trans, struct btrfs_root
32 *root, struct btrfs_super_block *s);
e20d96d6
CM
33struct btrfs_root *open_ctree(struct super_block *sb,
34 struct buffer_head *sb_buffer,
35 struct btrfs_super_block *disk_super);
36int close_ctree(struct btrfs_root *root);
37void btrfs_block_release(struct btrfs_root *root, struct buffer_head *buf);
e089f05c
CM
38int write_ctree_super(struct btrfs_trans_handle *trans, struct btrfs_root *root,
39 struct btrfs_super_block *s);
123abc88 40int mkfs(int fd, u64 num_blocks, u32 blocksize);
eb60ceac 41#endif