diff options
author | Tao Ma <tao.ma@oracle.com> | 2008-08-18 05:38:43 -0400 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2008-10-13 16:57:58 -0400 |
commit | 811f933df1e55615fd0bb4818f31e3868a8e6e23 (patch) | |
tree | 53335e59bdff02d7ddb3a2ec15d36239fe50003d /fs/ocfs2/alloc.h | |
parent | 231b87d10920e024efaf0f9e86e1bab7bced1620 (diff) |
ocfs2: Use ocfs2_extent_list instead of ocfs2_dinode.
ocfs2_extend_meta_needed(), ocfs2_calc_extend_credits() and
ocfs2_reserve_new_metadata() are all useful for extent tree operations. But
they are all limited to an inode btree because they use a struct
ocfs2_dinode parameter. Change their parameter to struct ocfs2_extent_list
(the part of an ocfs2_dinode they actually use) so that the xattr btree code
can use these functions.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/alloc.h')
-rw-r--r-- | fs/ocfs2/alloc.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/ocfs2/alloc.h b/fs/ocfs2/alloc.h index 5c0f764b59ec..a0e334f10cd1 100644 --- a/fs/ocfs2/alloc.h +++ b/fs/ocfs2/alloc.h | |||
@@ -48,8 +48,14 @@ int ocfs2_remove_extent(struct inode *inode, struct buffer_head *di_bh, | |||
48 | int ocfs2_num_free_extents(struct ocfs2_super *osb, | 48 | int ocfs2_num_free_extents(struct ocfs2_super *osb, |
49 | struct inode *inode, | 49 | struct inode *inode, |
50 | struct buffer_head *bh); | 50 | struct buffer_head *bh); |
51 | /* how many new metadata chunks would an allocation need at maximum? */ | 51 | /* |
52 | static inline int ocfs2_extend_meta_needed(struct ocfs2_dinode *fe) | 52 | * how many new metadata chunks would an allocation need at maximum? |
53 | * | ||
54 | * Please note that the caller must make sure that root_el is the root | ||
55 | * of extent tree. So for an inode, it should be &fe->id2.i_list. Otherwise | ||
56 | * the result may be wrong. | ||
57 | */ | ||
58 | static inline int ocfs2_extend_meta_needed(struct ocfs2_extent_list *root_el) | ||
53 | { | 59 | { |
54 | /* | 60 | /* |
55 | * Rather than do all the work of determining how much we need | 61 | * Rather than do all the work of determining how much we need |
@@ -59,7 +65,7 @@ static inline int ocfs2_extend_meta_needed(struct ocfs2_dinode *fe) | |||
59 | * new tree_depth==0 extent_block, and one block at the new | 65 | * new tree_depth==0 extent_block, and one block at the new |
60 | * top-of-the tree. | 66 | * top-of-the tree. |
61 | */ | 67 | */ |
62 | return le16_to_cpu(fe->id2.i_list.l_tree_depth) + 2; | 68 | return le16_to_cpu(root_el->l_tree_depth) + 2; |
63 | } | 69 | } |
64 | 70 | ||
65 | void ocfs2_dinode_new_extent_list(struct inode *inode, struct ocfs2_dinode *di); | 71 | void ocfs2_dinode_new_extent_list(struct inode *inode, struct ocfs2_dinode *di); |