aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/journal.h
diff options
context:
space:
mode:
authorJoel Becker <joel.becker@oracle.com>2008-09-11 18:53:07 -0400
committerMark Fasheh <mfasheh@suse.com>2009-01-05 11:40:31 -0500
commit50655ae9e91d272d48997bada59efe166aa5e343 (patch)
treeca821943897781fe4852c6ac447ccb4760ec8c65 /fs/ocfs2/journal.h
parentd6b32bbb3eae3fb787f1c33bf9f767ca1ddeb208 (diff)
ocfs2: Add journal_access functions with jbd2 triggers.
We create wrappers for ocfs2_journal_access() that are specific to the type of metadata block. This allows us to associate jbd2 commit triggers with the block. The triggers will compute metadata ecc in a future commit. Signed-off-by: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/journal.h')
-rw-r--r--fs/ocfs2/journal.h31
1 files changed, 26 insertions, 5 deletions
diff --git a/fs/ocfs2/journal.h b/fs/ocfs2/journal.h
index 37013bf9ce28..bca370dab021 100644
--- a/fs/ocfs2/journal.h
+++ b/fs/ocfs2/journal.h
@@ -212,9 +212,12 @@ static inline void ocfs2_checkpoint_inode(struct inode *inode)
212 * ocfs2_extend_trans - Extend a handle by nblocks credits. This may 212 * ocfs2_extend_trans - Extend a handle by nblocks credits. This may
213 * commit the handle to disk in the process, but will 213 * commit the handle to disk in the process, but will
214 * not release any locks taken during the transaction. 214 * not release any locks taken during the transaction.
215 * ocfs2_journal_access - Notify the handle that we want to journal this 215 * ocfs2_journal_access* - Notify the handle that we want to journal this
216 * buffer. Will have to call ocfs2_journal_dirty once 216 * buffer. Will have to call ocfs2_journal_dirty once
217 * we've actually dirtied it. Type is one of . or . 217 * we've actually dirtied it. Type is one of . or .
218 * Always call the specific flavor of
219 * ocfs2_journal_access_*() unless you intend to
220 * manage the checksum by hand.
218 * ocfs2_journal_dirty - Mark a journalled buffer as having dirty data. 221 * ocfs2_journal_dirty - Mark a journalled buffer as having dirty data.
219 * ocfs2_jbd2_file_inode - Mark an inode so that its data goes out before 222 * ocfs2_jbd2_file_inode - Mark an inode so that its data goes out before
220 * the current handle commits. 223 * the current handle commits.
@@ -244,10 +247,28 @@ int ocfs2_extend_trans(handle_t *handle, int nblocks);
244#define OCFS2_JOURNAL_ACCESS_WRITE 1 247#define OCFS2_JOURNAL_ACCESS_WRITE 1
245#define OCFS2_JOURNAL_ACCESS_UNDO 2 248#define OCFS2_JOURNAL_ACCESS_UNDO 2
246 249
247int ocfs2_journal_access(handle_t *handle, 250/* ocfs2_inode */
248 struct inode *inode, 251int ocfs2_journal_access_di(handle_t *handle, struct inode *inode,
249 struct buffer_head *bh, 252 struct buffer_head *bh, int type);
250 int type); 253/* ocfs2_extent_block */
254int ocfs2_journal_access_eb(handle_t *handle, struct inode *inode,
255 struct buffer_head *bh, int type);
256/* ocfs2_group_desc */
257int ocfs2_journal_access_gd(handle_t *handle, struct inode *inode,
258 struct buffer_head *bh, int type);
259/* ocfs2_xattr_block */
260int ocfs2_journal_access_xb(handle_t *handle, struct inode *inode,
261 struct buffer_head *bh, int type);
262/* quota blocks */
263int ocfs2_journal_access_dq(handle_t *handle, struct inode *inode,
264 struct buffer_head *bh, int type);
265/* dirblock */
266int ocfs2_journal_access_db(handle_t *handle, struct inode *inode,
267 struct buffer_head *bh, int type);
268/* Anything that has no ecc */
269int ocfs2_journal_access(handle_t *handle, struct inode *inode,
270 struct buffer_head *bh, int type);
271
251/* 272/*
252 * A word about the journal_access/journal_dirty "dance". It is 273 * A word about the journal_access/journal_dirty "dance". It is
253 * entirely legal to journal_access a buffer more than once (as long 274 * entirely legal to journal_access a buffer more than once (as long