diff options
Diffstat (limited to 'include/linux/jbd2.h')
-rw-r--r-- | include/linux/jbd2.h | 69 |
1 files changed, 3 insertions, 66 deletions
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index 38f307b8c33..2092ea21e46 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
@@ -275,6 +275,7 @@ typedef struct journal_superblock_s | |||
275 | 275 | ||
276 | #include <linux/fs.h> | 276 | #include <linux/fs.h> |
277 | #include <linux/sched.h> | 277 | #include <linux/sched.h> |
278 | #include <linux/jbd_common.h> | ||
278 | 279 | ||
279 | #define J_ASSERT(assert) BUG_ON(!(assert)) | 280 | #define J_ASSERT(assert) BUG_ON(!(assert)) |
280 | 281 | ||
@@ -302,70 +303,6 @@ typedef struct journal_superblock_s | |||
302 | #define J_EXPECT_JH(jh, expr, why...) __journal_expect(expr, ## why) | 303 | #define J_EXPECT_JH(jh, expr, why...) __journal_expect(expr, ## why) |
303 | #endif | 304 | #endif |
304 | 305 | ||
305 | enum jbd_state_bits { | ||
306 | BH_JBD /* Has an attached ext3 journal_head */ | ||
307 | = BH_PrivateStart, | ||
308 | BH_JWrite, /* Being written to log (@@@ DEBUGGING) */ | ||
309 | BH_Freed, /* Has been freed (truncated) */ | ||
310 | BH_Revoked, /* Has been revoked from the log */ | ||
311 | BH_RevokeValid, /* Revoked flag is valid */ | ||
312 | BH_JBDDirty, /* Is dirty but journaled */ | ||
313 | BH_State, /* Pins most journal_head state */ | ||
314 | BH_JournalHead, /* Pins bh->b_private and jh->b_bh */ | ||
315 | BH_Unshadow, /* Dummy bit, for BJ_Shadow wakeup filtering */ | ||
316 | BH_JBDPrivateStart, /* First bit available for private use by FS */ | ||
317 | }; | ||
318 | |||
319 | BUFFER_FNS(JBD, jbd) | ||
320 | BUFFER_FNS(JWrite, jwrite) | ||
321 | BUFFER_FNS(JBDDirty, jbddirty) | ||
322 | TAS_BUFFER_FNS(JBDDirty, jbddirty) | ||
323 | BUFFER_FNS(Revoked, revoked) | ||
324 | TAS_BUFFER_FNS(Revoked, revoked) | ||
325 | BUFFER_FNS(RevokeValid, revokevalid) | ||
326 | TAS_BUFFER_FNS(RevokeValid, revokevalid) | ||
327 | BUFFER_FNS(Freed, freed) | ||
328 | |||
329 | static inline struct buffer_head *jh2bh(struct journal_head *jh) | ||
330 | { | ||
331 | return jh->b_bh; | ||
332 | } | ||
333 | |||
334 | static inline struct journal_head *bh2jh(struct buffer_head *bh) | ||
335 | { | ||
336 | return bh->b_private; | ||
337 | } | ||
338 | |||
339 | static inline void jbd_lock_bh_state(struct buffer_head *bh) | ||
340 | { | ||
341 | bit_spin_lock(BH_State, &bh->b_state); | ||
342 | } | ||
343 | |||
344 | static inline int jbd_trylock_bh_state(struct buffer_head *bh) | ||
345 | { | ||
346 | return bit_spin_trylock(BH_State, &bh->b_state); | ||
347 | } | ||
348 | |||
349 | static inline int jbd_is_locked_bh_state(struct buffer_head *bh) | ||
350 | { | ||
351 | return bit_spin_is_locked(BH_State, &bh->b_state); | ||
352 | } | ||
353 | |||
354 | static inline void jbd_unlock_bh_state(struct buffer_head *bh) | ||
355 | { | ||
356 | bit_spin_unlock(BH_State, &bh->b_state); | ||
357 | } | ||
358 | |||
359 | static inline void jbd_lock_bh_journal_head(struct buffer_head *bh) | ||
360 | { | ||
361 | bit_spin_lock(BH_JournalHead, &bh->b_state); | ||
362 | } | ||
363 | |||
364 | static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh) | ||
365 | { | ||
366 | bit_spin_unlock(BH_JournalHead, &bh->b_state); | ||
367 | } | ||
368 | |||
369 | /* Flags in jbd_inode->i_flags */ | 306 | /* Flags in jbd_inode->i_flags */ |
370 | #define __JI_COMMIT_RUNNING 0 | 307 | #define __JI_COMMIT_RUNNING 0 |
371 | /* Commit of the inode data in progress. We use this flag to protect us from | 308 | /* Commit of the inode data in progress. We use this flag to protect us from |
@@ -1106,9 +1043,9 @@ static inline handle_t *journal_current_handle(void) | |||
1106 | */ | 1043 | */ |
1107 | 1044 | ||
1108 | extern handle_t *jbd2_journal_start(journal_t *, int nblocks); | 1045 | extern handle_t *jbd2_journal_start(journal_t *, int nblocks); |
1109 | extern handle_t *jbd2__journal_start(journal_t *, int nblocks, int gfp_mask); | 1046 | extern handle_t *jbd2__journal_start(journal_t *, int nblocks, gfp_t gfp_mask); |
1110 | extern int jbd2_journal_restart(handle_t *, int nblocks); | 1047 | extern int jbd2_journal_restart(handle_t *, int nblocks); |
1111 | extern int jbd2__journal_restart(handle_t *, int nblocks, int gfp_mask); | 1048 | extern int jbd2__journal_restart(handle_t *, int nblocks, gfp_t gfp_mask); |
1112 | extern int jbd2_journal_extend (handle_t *, int nblocks); | 1049 | extern int jbd2_journal_extend (handle_t *, int nblocks); |
1113 | extern int jbd2_journal_get_write_access(handle_t *, struct buffer_head *); | 1050 | extern int jbd2_journal_get_write_access(handle_t *, struct buffer_head *); |
1114 | extern int jbd2_journal_get_create_access (handle_t *, struct buffer_head *); | 1051 | extern int jbd2_journal_get_create_access (handle_t *, struct buffer_head *); |