diff options
author | Chris Mason <chris.mason@oracle.com> | 2007-10-15 16:14:19 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:56 -0400 |
commit | 5f39d397dfbe140a14edecd4e73c34ce23c4f9ee (patch) | |
tree | 280561e4b68d573590557dd27df656869eed8023 /fs/btrfs/disk-io.h | |
parent | 50b78c24d594e6985f36a9a8d8e2fb74e1664e90 (diff) |
Btrfs: Create extent_buffer interface for large blocksizes
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/disk-io.h')
-rw-r--r-- | fs/btrfs/disk-io.h | 55 |
1 files changed, 11 insertions, 44 deletions
diff --git a/fs/btrfs/disk-io.h b/fs/btrfs/disk-io.h index fc6b520c6e0b..70d9413c599f 100644 --- a/fs/btrfs/disk-io.h +++ b/fs/btrfs/disk-io.h | |||
@@ -19,68 +19,35 @@ | |||
19 | #ifndef __DISKIO__ | 19 | #ifndef __DISKIO__ |
20 | #define __DISKIO__ | 20 | #define __DISKIO__ |
21 | 21 | ||
22 | #include <linux/buffer_head.h> | ||
23 | |||
24 | #define BTRFS_SUPER_INFO_OFFSET (16 * 1024) | 22 | #define BTRFS_SUPER_INFO_OFFSET (16 * 1024) |
25 | 23 | ||
26 | enum btrfs_bh_state_bits { | 24 | struct extent_buffer *read_tree_block(struct btrfs_root *root, u64 blocknr); |
27 | BH_Checked = BH_PrivateStart, | ||
28 | BH_Defrag, | ||
29 | BH_DefragDone, | ||
30 | }; | ||
31 | BUFFER_FNS(Checked, checked); | ||
32 | BUFFER_FNS(Defrag, defrag); | ||
33 | BUFFER_FNS(DefragDone, defrag_done); | ||
34 | |||
35 | static inline struct btrfs_node *btrfs_buffer_node(struct buffer_head *bh) | ||
36 | { | ||
37 | return (struct btrfs_node *)bh->b_data; | ||
38 | } | ||
39 | |||
40 | static inline struct btrfs_leaf *btrfs_buffer_leaf(struct buffer_head *bh) | ||
41 | { | ||
42 | return (struct btrfs_leaf *)bh->b_data; | ||
43 | } | ||
44 | |||
45 | static inline struct btrfs_header *btrfs_buffer_header(struct buffer_head *bh) | ||
46 | { | ||
47 | return &((struct btrfs_node *)bh->b_data)->header; | ||
48 | } | ||
49 | |||
50 | struct buffer_head *read_tree_block(struct btrfs_root *root, u64 blocknr); | ||
51 | int readahead_tree_block(struct btrfs_root *root, u64 blocknr); | 25 | int readahead_tree_block(struct btrfs_root *root, u64 blocknr); |
52 | struct buffer_head *btrfs_find_create_tree_block(struct btrfs_root *root, | 26 | struct extent_buffer *btrfs_find_create_tree_block(struct btrfs_root *root, |
53 | u64 blocknr); | 27 | u64 blocknr); |
54 | int write_tree_block(struct btrfs_trans_handle *trans, struct btrfs_root *root, | ||
55 | struct buffer_head *buf); | ||
56 | int dirty_tree_block(struct btrfs_trans_handle *trans, struct btrfs_root *root, | ||
57 | struct buffer_head *buf); | ||
58 | int clean_tree_block(struct btrfs_trans_handle *trans, | 28 | int clean_tree_block(struct btrfs_trans_handle *trans, |
59 | struct btrfs_root *root, struct buffer_head *buf); | 29 | struct btrfs_root *root, struct extent_buffer *buf); |
60 | int btrfs_commit_transaction(struct btrfs_trans_handle *trans, | ||
61 | struct btrfs_root *root); | ||
62 | struct btrfs_root *open_ctree(struct super_block *sb); | 30 | struct btrfs_root *open_ctree(struct super_block *sb); |
63 | int close_ctree(struct btrfs_root *root); | 31 | int close_ctree(struct btrfs_root *root); |
64 | void btrfs_block_release(struct btrfs_root *root, struct buffer_head *buf); | ||
65 | int write_ctree_super(struct btrfs_trans_handle *trans, | 32 | int write_ctree_super(struct btrfs_trans_handle *trans, |
66 | struct btrfs_root *root); | 33 | struct btrfs_root *root); |
67 | struct buffer_head *btrfs_find_tree_block(struct btrfs_root *root, u64 blocknr); | 34 | struct extent_buffer *btrfs_find_tree_block(struct btrfs_root *root, |
68 | int btrfs_csum_data(struct btrfs_root * root, char *data, size_t len, | 35 | u64 blocknr); |
69 | char *result); | ||
70 | struct btrfs_root *btrfs_read_fs_root(struct btrfs_fs_info *fs_info, | 36 | struct btrfs_root *btrfs_read_fs_root(struct btrfs_fs_info *fs_info, |
71 | struct btrfs_key *location, | 37 | struct btrfs_key *location, |
72 | const char *name, int namelen); | 38 | const char *name, int namelen); |
73 | struct btrfs_root *btrfs_read_fs_root_no_radix(struct btrfs_fs_info *fs_info, | 39 | struct btrfs_root *btrfs_read_fs_root_no_radix(struct btrfs_fs_info *fs_info, |
74 | struct btrfs_key *location); | 40 | struct btrfs_key *location); |
75 | u64 bh_blocknr(struct buffer_head *bh); | ||
76 | int btrfs_insert_dev_radix(struct btrfs_root *root, | 41 | int btrfs_insert_dev_radix(struct btrfs_root *root, |
77 | struct block_device *bdev, | 42 | struct block_device *bdev, |
78 | u64 device_id, | 43 | u64 device_id, |
79 | u64 block_start, | 44 | u64 block_start, |
80 | u64 num_blocks); | 45 | u64 num_blocks); |
81 | int btrfs_map_bh_to_logical(struct btrfs_root *root, struct buffer_head *bh, | ||
82 | u64 logical); | ||
83 | void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr); | 46 | void btrfs_btree_balance_dirty(struct btrfs_root *root, unsigned long nr); |
84 | int btrfs_free_fs_root(struct btrfs_fs_info *fs_info, struct btrfs_root *root); | 47 | int btrfs_free_fs_root(struct btrfs_fs_info *fs_info, struct btrfs_root *root); |
85 | void btrfs_mark_buffer_dirty(struct buffer_head *bh); | 48 | void btrfs_mark_buffer_dirty(struct extent_buffer *buf); |
49 | int btrfs_buffer_uptodate(struct extent_buffer *buf); | ||
50 | int btrfs_set_buffer_uptodate(struct extent_buffer *buf); | ||
51 | int wait_on_tree_block_writeback(struct btrfs_root *root, | ||
52 | struct extent_buffer *buf); | ||
86 | #endif | 53 | #endif |