Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / jbd_common.h
1 #ifndef _LINUX_JBD_STATE_H
2 #define _LINUX_JBD_STATE_H
3
4 #include <linux/bit_spinlock.h>
5
6 static inline struct buffer_head *jh2bh(struct journal_head *jh)
7 {
8         return jh->b_bh;
9 }
10
11 static inline struct journal_head *bh2jh(struct buffer_head *bh)
12 {
13         return bh->b_private;
14 }
15
16 static inline void jbd_lock_bh_state(struct buffer_head *bh)
17 {
18         bit_spin_lock(BH_State, &bh->b_state);
19 }
20
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
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
31 static inline void jbd_unlock_bh_state(struct buffer_head *bh)
32 {
33         bit_spin_unlock(BH_State, &bh->b_state);
34 }
35
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
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