1. 09 8月, 2012 1 次提交
  2. 03 5月, 2012 1 次提交
    • D
      dlm: fixes for nodir mode · 4875647a
      David Teigland 提交于
      The "nodir" mode (statically assign master nodes instead
      of using the resource directory) has always been highly
      experimental, and never seriously used.  This commit
      fixes a number of problems, making nodir much more usable.
      
      - Major change to recovery: recover all locks and restart
        all in-progress operations after recovery.  In some
        cases it's not possible to know which in-progess locks
        to recover, so recover all.  (Most require recovery
        in nodir mode anyway since rehashing changes most
        master nodes.)
      
      - Change the way nodir mode is enabled, from a command
        line mount arg passed through gfs2, into a sysfs
        file managed by dlm_controld, consistent with the
        other config settings.
      
      - Allow recovering MSTCPY locks on an rsb that has not
        yet been turned into a master copy.
      
      - Ignore RCOM_LOCK and RCOM_LOCK_REPLY recovery messages
        from a previous, aborted recovery cycle.  Base this
        on the local recovery status not being in the state
        where any nodes should be sending LOCK messages for the
        current recovery cycle.
      
      - Hold rsb lock around dlm_purge_mstcpy_locks() because it
        may run concurrently with dlm_recover_master_copy().
      
      - Maintain highbast on process-copy lkb's (in addition to
        the master as is usual), because the lkb can switch
        back and forth between being a master and being a
        process copy as the master node changes in recovery.
      
      - When recovering MSTCPY locks, flag rsb's that have
        non-empty convert or waiting queues for granting
        at the end of recovery.  (Rename flag from LOCKS_PURGED
        to RECOVER_GRANT and similar for the recovery function,
        because it's not only resources with purged locks
        that need grant a grant attempt.)
      
      - Replace a couple of unnecessary assertion panics with
        error messages.
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      4875647a
  3. 20 7月, 2011 1 次提交
  4. 16 7月, 2011 1 次提交
  5. 11 3月, 2011 1 次提交
    • D
      dlm: record full callback state · 8304d6f2
      David Teigland 提交于
      Change how callbacks are recorded for locks.  Previously, information
      about multiple callbacks was combined into a couple of variables that
      indicated what the end result should be.  In some situations, we
      could not tell from this combined state what the exact sequence of
      callbacks were, and would end up either delivering the callbacks in
      the wrong order, or suppress redundant callbacks incorrectly.  This
      new approach records all the data for each callback, leaving no
      uncertainty about what needs to be delivered.
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      8304d6f2
  6. 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
  7. 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
  8. 06 2月, 2008 1 次提交
  9. 01 5月, 2007 1 次提交
  10. 24 8月, 2006 1 次提交
  11. 13 7月, 2006 1 次提交
  12. 20 1月, 2006 1 次提交
  13. 18 1月, 2006 1 次提交