linux-old/include/linux/locks.h
<<
>>
Prefs
   1#ifndef _LINUX_LOCKS_H
   2#define _LINUX_LOCKS_H
   3
   4#ifndef _LINUX_MM_H
   5#include <linux/mm.h>
   6#endif
   7#ifndef _LINUX_PAGEMAP_H
   8#include <linux/pagemap.h>
   9#endif
  10
  11/*
  12 * Buffer cache locking - note that interrupts may only unlock, not
  13 * lock buffers.
  14 */
  15extern void __wait_on_buffer(struct buffer_head *);
  16
  17static inline void wait_on_buffer(struct buffer_head * bh)
  18{
  19        if (test_bit(BH_Lock, &bh->b_state))
  20                __wait_on_buffer(bh);
  21}
  22
  23static inline void lock_buffer(struct buffer_head * bh)
  24{
  25        while (test_and_set_bit(BH_Lock, &bh->b_state))
  26                __wait_on_buffer(bh);
  27}
  28
  29extern void FASTCALL(unlock_buffer(struct buffer_head *bh));
  30
  31/*
  32 * super-block locking. Again, interrupts may only unlock
  33 * a super-block (although even this isn't done right now.
  34 * nfs may need it).
  35 */
  36
  37static inline void lock_super(struct super_block * sb)
  38{
  39        down(&sb->s_lock);
  40}
  41
  42static inline void unlock_super(struct super_block * sb)
  43{
  44        up(&sb->s_lock);
  45}
  46
  47#endif /* _LINUX_LOCKS_H */
  48
  49
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.