7 #ifndef _LINUX_PAGEMAP_H
8 #include <linux/pagemap.h>
12 * Buffer cache locking - note that interrupts may only unlock, not
15 extern void __wait_on_buffer(struct buffer_head
*);
17 extern inline void wait_on_buffer(struct buffer_head
* bh
)
19 if (test_bit(BH_Lock
, &bh
->b_state
))
23 extern inline void lock_buffer(struct buffer_head
* bh
)
25 while (test_and_set_bit(BH_Lock
, &bh
->b_state
))
29 extern inline void unlock_buffer(struct buffer_head
*bh
)
31 clear_bit(BH_Lock
, &bh
->b_state
);
32 smp_mb__after_clear_bit();
33 if (waitqueue_active(&bh
->b_wait
))
38 * super-block locking. Again, interrupts may only unlock
39 * a super-block (although even this isn't done right now.
42 extern void __wait_on_super(struct super_block
*);
44 extern inline void wait_on_super(struct super_block
* sb
)
50 extern inline void lock_super(struct super_block
* sb
)
57 extern inline void unlock_super(struct super_block
* sb
)
61 * No need of any barrier, we're protected by
62 * the big kernel lock here... unfortunately :)
64 if (waitqueue_active(&sb
->s_wait
))
68 #endif /* _LINUX_LOCKS_H */