1. 25 2月, 2010 1 次提交
    • D
      dlm: fix ordering of bast and cast · 7fe2b319
      David Teigland 提交于
      When both blocking and completion callbacks are queued for lock,
      the dlm would always deliver the completion callback (cast) first.
      In some cases the blocking callback (bast) is queued before the
      cast, though, and should be delivered first.  This patch keeps
      track of the order in which they were queued and delivers them
      in that order.
      
      This patch also keeps track of the granted mode in the last cast
      and eliminates the following bast if the bast mode is compatible
      with the preceding cast mode.  This happens when a remotely mastered
      lock is demoted, e.g. EX->NL, in which case the local node queues
      a cast immediately after sending the demote message.  In this way
      a cast can be queued for a mode, e.g. NL, that makes an in-transit
      bast extraneous.
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      7fe2b319
  2. 24 12月, 2008 4 次提交
    • A
      dlm: fs/dlm/ast.c: fix warning · 722d7421
      Andrew Morton 提交于
      fs/dlm/ast.c: In function 'dlm_astd':
      fs/dlm/ast.c:64: warning: 'bastmode' may be used uninitialized in this function
      
      Cleans code up.
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      722d7421
    • D
      dlm: improve how bast mode handling · fd22a51b
      David Teigland 提交于
      The lkb bastmode value is set in the context of processing the
      lock, and read by the dlm_astd thread.  Because it's accessed
      in these two separate contexts, the writing/reading ought to
      be done under a lock.  This is simple to do by setting it and
      reading it when the lkb is added to and removed from dlm_astd's
      callback list which is properly locked.
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      fd22a51b
    • D
      dlm: remove extra blocking callback check · 03339696
      David Teigland 提交于
      Just before delivering a blocking callback (bast), the dlm_astd
      thread checks again that the granted mode of the lkb actually
      blocks the mode requested by the bast.  The idea behind this was
      originally that the granted mode may have changed since the bast
      was queued, making the callback now unnecessary.  Reasons for
      removing this extra check are:
      - dlm_astd doesn't lock the rsb before reading the lkb grmode, so
        it's not technically safe (this removes the long standing FIXME)
      - after running some tests, it doesn't appear the check ever actually
        eliminates a bast
      - delivering an unnecessary blocking callback isn't a bad thing and
        can happen anyway
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      03339696
    • S
      dlm: replace schedule with cond_resched · d61e9aac
      Steven Whitehouse 提交于
      This is a one-liner to use cond_resched() rather than schedule()
      in the ast delivery loop. It should not be necessary to schedule
      every time, so this will save some cpu time while continuing to
      allow scheduling when required.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      d61e9aac
  3. 06 2月, 2008 1 次提交
  4. 01 5月, 2007 1 次提交
  5. 24 8月, 2006 1 次提交
  6. 13 7月, 2006 1 次提交
  7. 20 1月, 2006 1 次提交
  8. 18 1月, 2006 1 次提交