diff options
author | Joel Becker <joel.becker@oracle.com> | 2009-02-12 19:41:25 -0500 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2009-09-04 19:07:50 -0400 |
commit | 0cf2f7632b1789b811ab20b611c4156e6de2b055 (patch) | |
tree | 34f7cf3584e4fa2bc187d4b75ce052cb98739b0e /fs/ocfs2/ocfs2.h | |
parent | 292dd27ec76b96cebcef576f330ab121f59ccf05 (diff) |
ocfs2: Pass struct ocfs2_caching_info to the journal functions.
The next step in divorcing metadata I/O management from struct inode is
to pass struct ocfs2_caching_info to the journal functions. Thus the
journal locks a metadata cache with the cache io_lock function. It also
can compare ci_last_trans and ci_created_trans directly.
This is a large patch because of all the places we change
ocfs2_journal_access..(handle, inode, ...) to
ocfs2_journal_access..(handle, INODE_CACHE(inode), ...).
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/ocfs2/ocfs2.h')
-rw-r--r-- | fs/ocfs2/ocfs2.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index 18b5fea98c91..d370262b3621 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h | |||
@@ -91,6 +91,11 @@ struct ocfs2_caching_info { | |||
91 | struct rb_root ci_tree; | 91 | struct rb_root ci_tree; |
92 | } ci_cache; | 92 | } ci_cache; |
93 | }; | 93 | }; |
94 | /* | ||
95 | * Need this prototype here instead of in uptodate.h because journal.h | ||
96 | * uses it. | ||
97 | */ | ||
98 | struct super_block *ocfs2_metadata_cache_get_super(struct ocfs2_caching_info *ci); | ||
94 | 99 | ||
95 | /* this limits us to 256 nodes | 100 | /* this limits us to 256 nodes |
96 | * if we need more, we can do a kmalloc for the map */ | 101 | * if we need more, we can do a kmalloc for the map */ |
@@ -408,7 +413,8 @@ struct ocfs2_super | |||
408 | #define OCFS2_SB(sb) ((struct ocfs2_super *)(sb)->s_fs_info) | 413 | #define OCFS2_SB(sb) ((struct ocfs2_super *)(sb)->s_fs_info) |
409 | 414 | ||
410 | /* Useful typedef for passing around journal access functions */ | 415 | /* Useful typedef for passing around journal access functions */ |
411 | typedef int (*ocfs2_journal_access_func)(handle_t *handle, struct inode *inode, | 416 | typedef int (*ocfs2_journal_access_func)(handle_t *handle, |
417 | struct ocfs2_caching_info *ci, | ||
412 | struct buffer_head *bh, int type); | 418 | struct buffer_head *bh, int type); |
413 | 419 | ||
414 | static inline int ocfs2_should_order_data(struct inode *inode) | 420 | static inline int ocfs2_should_order_data(struct inode *inode) |