• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _LINUX_JBD_STATE_H
2 #define _LINUX_JBD_STATE_H
3 
4 #include <linux/bit_spinlock.h>
5 
jh2bh(struct journal_head * jh)6 static inline struct buffer_head *jh2bh(struct journal_head *jh)
7 {
8 	return jh->b_bh;
9 }
10 
bh2jh(struct buffer_head * bh)11 static inline struct journal_head *bh2jh(struct buffer_head *bh)
12 {
13 	return bh->b_private;
14 }
15 
jbd_lock_bh_state(struct buffer_head * bh)16 static inline void jbd_lock_bh_state(struct buffer_head *bh)
17 {
18 	bit_spin_lock(BH_State, &bh->b_state);
19 }
20 
jbd_trylock_bh_state(struct buffer_head * bh)21 static inline int jbd_trylock_bh_state(struct buffer_head *bh)
22 {
23 	return bit_spin_trylock(BH_State, &bh->b_state);
24 }
25 
jbd_is_locked_bh_state(struct buffer_head * bh)26 static inline int jbd_is_locked_bh_state(struct buffer_head *bh)
27 {
28 	return bit_spin_is_locked(BH_State, &bh->b_state);
29 }
30 
jbd_unlock_bh_state(struct buffer_head * bh)31 static inline void jbd_unlock_bh_state(struct buffer_head *bh)
32 {
33 	bit_spin_unlock(BH_State, &bh->b_state);
34 }
35 
jbd_lock_bh_journal_head(struct buffer_head * bh)36 static inline void jbd_lock_bh_journal_head(struct buffer_head *bh)
37 {
38 	bit_spin_lock(BH_JournalHead, &bh->b_state);
39 }
40 
jbd_unlock_bh_journal_head(struct buffer_head * bh)41 static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
42 {
43 	bit_spin_unlock(BH_JournalHead, &bh->b_state);
44 }
45 
46 #endif
47