linux/include/linux/jbd_common.h
<<
>>
Prefs
   1#ifndef _LINUX_JBD_STATE_H
   2#define _LINUX_JBD_STATE_H
   3
   4enum jbd_state_bits {
   5        BH_JBD                  /* Has an attached ext3 journal_head */
   6          = BH_PrivateStart,
   7        BH_JWrite,              /* Being written to log (@@@ DEBUGGING) */
   8        BH_Freed,               /* Has been freed (truncated) */
   9        BH_Revoked,             /* Has been revoked from the log */
  10        BH_RevokeValid,         /* Revoked flag is valid */
  11        BH_JBDDirty,            /* Is dirty but journaled */
  12        BH_State,               /* Pins most journal_head state */
  13        BH_JournalHead,         /* Pins bh->b_private and jh->b_bh */
  14        BH_Unshadow,            /* Dummy bit, for BJ_Shadow wakeup filtering */
  15        BH_Verified,            /* Metadata block has been verified ok */
  16        BH_JBDPrivateStart,     /* First bit available for private use by FS */
  17};
  18
  19BUFFER_FNS(JBD, jbd)
  20BUFFER_FNS(JWrite, jwrite)
  21BUFFER_FNS(JBDDirty, jbddirty)
  22TAS_BUFFER_FNS(JBDDirty, jbddirty)
  23BUFFER_FNS(Revoked, revoked)
  24TAS_BUFFER_FNS(Revoked, revoked)
  25BUFFER_FNS(RevokeValid, revokevalid)
  26TAS_BUFFER_FNS(RevokeValid, revokevalid)
  27BUFFER_FNS(Freed, freed)
  28BUFFER_FNS(Verified, verified)
  29
  30static inline struct buffer_head *jh2bh(struct journal_head *jh)
  31{
  32        return jh->b_bh;
  33}
  34
  35static inline struct journal_head *bh2jh(struct buffer_head *bh)
  36{
  37        return bh->b_private;
  38}
  39
  40static inline void jbd_lock_bh_state(struct buffer_head *bh)
  41{
  42        bit_spin_lock(BH_State, &bh->b_state);
  43}
  44
  45static inline int jbd_trylock_bh_state(struct buffer_head *bh)
  46{
  47        return bit_spin_trylock(BH_State, &bh->b_state);
  48}
  49
  50static inline int jbd_is_locked_bh_state(struct buffer_head *bh)
  51{
  52        return bit_spin_is_locked(BH_State, &bh->b_state);
  53}
  54
  55static inline void jbd_unlock_bh_state(struct buffer_head *bh)
  56{
  57        bit_spin_unlock(BH_State, &bh->b_state);
  58}
  59
  60static inline void jbd_lock_bh_journal_head(struct buffer_head *bh)
  61{
  62        bit_spin_lock(BH_JournalHead, &bh->b_state);
  63}
  64
  65static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
  66{
  67        bit_spin_unlock(BH_JournalHead, &bh->b_state);
  68}
  69
  70#endif
  71
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.