ocfs2: Store the ocfs2_caching_info on ocfs2_extent_tree.
What do we cache? Metadata blocks. What are most of our non-inode metadata blocks? Extent blocks for our btrees. struct ocfs2_extent_tree is the main structure for managing those. So let's store the associated ocfs2_caching_info there. This means that ocfs2_et_root_journal_access() doesn't need struct inode anymore, and any place that has an et can refer to et->et_ci instead of INODE_CACHE(inode). Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
@@ -45,7 +45,8 @@
|
||||
*
|
||||
* ocfs2_extent_tree contains info for the root of the b-tree, it must have a
|
||||
* root ocfs2_extent_list and a root_bh so that they can be used in the b-tree
|
||||
* functions. With metadata ecc, we now call different journal_access
|
||||
* functions. It needs the ocfs2_caching_info structure associated with
|
||||
* I/O on the tree. With metadata ecc, we now call different journal_access
|
||||
* functions for each type of metadata, so it must have the
|
||||
* root_journal_access function.
|
||||
* ocfs2_extent_tree_operations abstract the normal operations we do for
|
||||
@@ -56,6 +57,7 @@ struct ocfs2_extent_tree {
|
||||
struct ocfs2_extent_tree_operations *et_ops;
|
||||
struct buffer_head *et_root_bh;
|
||||
struct ocfs2_extent_list *et_root_el;
|
||||
struct ocfs2_caching_info *et_ci;
|
||||
ocfs2_journal_access_func et_root_journal_access;
|
||||
void *et_object;
|
||||
unsigned int et_max_leaf_clusters;
|
||||
|
Reference in New Issue
Block a user